jvm_01 jvm与java体系结构

Posted coderchen的后端之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jvm_01 jvm与java体系结构相关的知识,希望对你有一定的参考价值。

jvm语言无关性

  • java虚拟机拥有语言无关性,并不是只有java语言的字节码才能在java虚拟机里运行,其他的语言例如javascript,JRuby,Scala等的字节码文件也可以。综合来说只要一个语言编译后的字节码文件符合jvm的内部指令集,符号表等信息,就可以被jvm识别并运行。

jvm位置

  • 虚拟机分为系统虚拟机和程序虚拟机。Visual Box,VMware属于系统虚拟机。java虚拟机属于程序虚拟机,它专门为执行单个计算机程序而设计,在java虚拟机中执行的指令称为java字节码指令。

  • java虚拟机就是一个二进制字节码的运行环境,字节码在其中运行,然后被编译成对应平台的机器指令。

  • jvm的位置:jvm是运行在操作系统之上的,与硬件没有直接的交互。

jvm_01 jvm与java体系结构
jvm_01 jvm与java体系结构

jvm的整体结构

jvm_01 jvm与java体系结构

详细图

jvm_01 jvm与java体系结构

java代码的执行流程

jvm_01 jvm与java体系结构
jvm_01 jvm与java体系结构

jvm的架构模型

jvm的架构模型是基于栈的指令集架构,还有一种是基于寄存器的指令集架构。

jvm的生命周期

  • 虚拟机的启动:通过引导类加载器(bootstrap class loader) 创建一个初始类(initial class)来完成,这个类是由虚拟机具体指定的,不同虚拟机不同。
  • 虚拟机的执行:执行java程序。
  • 虚拟机的退出:程序正常执行结束,程序遇到错误异常终止,操作系统错误,线程调用方法退出。

jvm发展历程

  • Sun Classic VM :只提供解释器,如果使用JIT编译器,要进行外挂,但解释器和编译器不能同时工作。

  • Exact VM:虚拟机知道内存中某个位置的数据具体的类型。编译器与解释器混合工作模式。

  • HotSpot VM:jdk默认的虚拟机。HotSpot指热点代码探测技术。即通过计数器找到最具编译价值的代码,触发即时编译或栈上替换。通过编译器和解释器协同,在最优化的程序响应时间与最佳执行性能中取得平衡。

  • JRockit:专注于服务器端应用。内部不包含解析器,代码都是即时编译器编译后执行。是世界上最快的jvm。

  • IBM J9:IBM的虚拟机。三大商用虚拟机:HotSpot , JRockit ,J9

  • Azul VM :与特定硬件平台绑定,软硬件配合的专有虚拟机。性能极佳。

  • Apache Harmony:IBM和Intel联合开发的开源jvm。

  • TaobaoJVM : 基于HotSpot VM开发的深度定制且开源的高性能服务器版jvm

  • Graal VM:在HotSpot VM基础上增强而成的跨语言全栈虚拟机,可以作为任何语言的运行平台使用。


以上是关于jvm_01 jvm与java体系结构的主要内容,如果未能解决你的问题,请参考以下文章

JVM jvm与Java体系结构 01

JVM01_整体概述

01-JVM 与 Java 体系结构

JVM_01 内存结构篇

黑马程序员JVM教程笔记完整目录

黑马程序员JVM教程笔记完整目录