JVM的简单介绍

JVM的简单介绍,第1张

JVM的简单介绍 一、整体结构

整个JVM可以分为三个部分,以HotSpot虚拟机为例:

  • 类加载器(ClassLoader):负责把字节码文件生成Class对象放入内存
  • 运行时数据区:保存Class对象,分为线程共享的方法区、堆,非共享的JVM栈、本地方法栈、程序计数器(PC register)
  • 执行引擎:包括解释执行器、编译器(JTI)、垃圾回收期,负责把字节码转换为机器码
二、java代码的执行流程

java文件是通过前端编译器(javac等),生成字节码文件(.class)。主流JVM都是解释器和编译器并存的架构。

  • 解释执行器:逐行翻译class文件,负责响应时间
  • 编译器:对热点代码就行缓存,下次直接调用,提高性能

 

三、JVM的架构模型

指令集架构分为2种,① 基于栈  ②基于寄存器,HopSpot就是基于栈的指令架构。

  • 跨平台性
  • 指令集小、指令多
  • 执行性能比寄存器差
四、jvm生命周期

1、启动:引导类加载器加载(bootstrap class loader)创建一个初始类(initial class)完成的。

2、执行:执行java任务,每个java任务就是jvm中的一个进程

3、结束:java任务执行结束,就是执行完成,或者异常、调用SystemRuntime的exit *** 作

五、JVM发展历程
  • Sun Classic VM:第一个商用的jvm,只有解释器
  • Exact VM:可知道内存中某个位置是哪个类型,编译器和解释器一起使用
  • HotSpot VM:至今依然使用,最著名的虚拟机之一,默认的虚拟机(方法区概念)
  • JRockit:专注于服务器端,不关心启动速度,所以不包含解释器,只有编译器,所以是世界上最快的JVM
  • J9:IBM的JVM,定位和HotSpot相近,号称世界上最快的JVM,在IBM产品上很稳定
  • CDC/CLDC HotSpot:java移动端的虚拟机
  • KVM:低端设备上,老人机低端手机等
  • AzulLiquid VM:与硬件整合,性能更高
  • Harmony:Apache 推出,在Android SDK中借鉴了大量代码编写方式
  • Microsoft JVM:windows 平台上,后来sun状告
  • TaoBao JVM:HotSpot深度定制,依赖intel的cpu
  • Dalvik VM:5.0之前提供的Android虚拟机,执行dex文件,寄存器架构模型
  • Graal VM:2018年4月 oracle公布,真正实现了跨语言的全站虚拟机,可能替代HotSpot

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5118451.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存