• 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的标杆

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

  • 相关阅读:
    hdu 5036 概率+bitset
    hdu 5037 周期优化
    hdu 5038 求出现次数最多的grade
    hdu 5040 bfs
    hdu 5045 N个人做M道题的正确率
    hdu 5046 二分+DLX模板
    hdu 5047 大数找规律
    c:set注意事项
    It is indirectly referenced from required .class files(导入项目报错原因与解决方法)
    oracle-01722,函数subtr,instr
  • 原文地址:https://www.cnblogs.com/kongbubihai/p/13786209.html
Copyright © 2020-2023  润新知