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

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

  • 相关阅读:
    wpf arcgis engine 当前没有或未启用Spatial Analyst许可解决办法
    arcglobe 图层三大类说明
    sql自带函数语句
    wpf 前台获取资源文件路径问题
    Microsoft.Office.Interop.Excel的用法
    WPF:父窗口与子窗口的层次关系
    wpf 拖图片到窗体
    wpf comboBox取值问题
    wpf 窗体内容旋转效果 网摘
    js拖动滑块
  • 原文地址:https://www.cnblogs.com/kongbubihai/p/13786209.html
Copyright © 2011-2022 走看看