zoukankan      html  css  js  c++  java
  • JVM系列【1】虚拟机基础概念

    JVM系列笔记目录

    • 虚拟机的基础概念
    • class文件结构
    • class文件加载过程
    • jvm内存模型
    • JVM常用指令
    • GC与调优

    虚拟机的基础概念

    1.Java从编码到执行过程

    一个Java源文件如Hello.java通过编译命令javac编译成class文件Hello.class,在JVM中ClassLoader加载该class文件到JVM内存中,执行时候通过字节码解释器或是即时编译器解释后,交给执行引擎,执行引擎与OS硬件交互去完成执行。

    file

    2.JVM与class文件

    JVM与java语言无关?是的,JVM实际上是与class文件打交道,而不是直接与Java语言打交道。理论上,任何编程语言编译成class文件,就可以在JVM中执行,这也是下面说的跨语言平台。

    file

    3.跨平台的语言和跨语言平台

    跨平台语言: 指该语言可以在不同的操作系统下运行,包括但不限于linux、windows、mac、unix、andriod等。

    跨语言平台:如下图简单的例子,不管编程语言是Java、scala、还是kotlin,只要最终编译成class文件,就能在JVM中执行,这里的Java Virtual Machine就是跨语言平台。

    file

    4.JVM的概念

    何谓Java Virtual Machine? 简单理解就是虚拟出来的一台电脑,有自己特定的字节码指令集(汇编语言的),有专门的内存管理、堆、栈、方法区等。

    5.Java语言规范和JVM规范

    Java语言规范: The Java Language Specification 具体可以参考 Oracle官方JVM规范

    JVM规范: The Java Virtual Machine Specification 具体可以参考 Oracle官方JVM规范

    6.常见的JVM规范实现

    Oracle官方规定了JVM的规范,不同的厂商针对这个规范实现各自的JVM,如下表。

    JVM名称 厂商 说明
    HotSpot Oracle 官方JVM
    JRocket BEA 曾经号称最快的虚拟机,被Oracle收购,合并进了HotSpot
    J9 IMB
    MircrosoftVM Microsoft
    TaobaoVM 阿里巴巴 淘宝的JVM
    LiquidVM BEA 直接针对硬件的JVM
    Azul VM Azul 最新垃圾回收器Zing的标杆

    知识分享,转载请注明出处。学无先后,达者为先!

  • 相关阅读:
    linux运维 技能树
    ORACLE:毫秒与日期的相互转换,获取某天的信息
    Mybatis通用Mapper(转)
    Redis数据类型之散列类型hash
    Redis数据类型(字符串)
    Redis整理第三波(生存时间、事务管理)
    Redis整理第二波(启动、命令)
    非关系型数据库(NOSQL)-Redis
    冒泡排序,冒泡性能优化--java实现
    学习过的设计模式总结(分别从概念、分类、优缺点、应用、区别来说)
  • 原文地址:https://www.cnblogs.com/kongbubihai/p/13786209.html
Copyright © 2011-2022 走看看