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

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

  • 相关阅读:
    转:用两个栈实现一个队列——我作为面试官的小结
    Android屏幕重力感应旋转
    简单的单例模板,继承使用即可
    cocos2dx windows 音量设置无效解决办法
    lua lu
    OpenGL ES API with no current context
    git更新某个目录
    sh ndk-build clean Cannot run program "sh": Launching failed Error: Program "sh" not found in PATH PATH=......
    sublime Text快捷键
    转:解决windows下eclipse中android项目关联android library project失败问题
  • 原文地址:https://www.cnblogs.com/kongbubihai/p/13786209.html
Copyright © 2011-2022 走看看