JVM的简单介绍

本文详细介绍了JVM的结构,包括类加载器、运行时数据区和执行引擎,强调了解释器与编译器在性能优化中的作用。此外,还概述了JVM的指令集架构及其跨平台特性。JVM的发展历程中,从SunClassicVM到HotSpotVM、JRockit、J9等,再到DalvikVM和现在的GraalVM,每个阶段都体现了不同的技术和优化重点。
摘要由CSDN通过智能技术生成

一、整体结构

整个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任务执行结束,就是执行完成,或者异常、调用System\Runtime的exit操作

五、JVM发展历程

  • Sun Classic VM:第一个商用的jvm,只有解释器
  • Exact VM:可知道内存中某个位置是哪个类型,编译器和解释器一起使用
  • HotSpot VM:至今依然使用,最著名的虚拟机之一,默认的虚拟机(方法区概念)
  • JRockit:专注于服务器端,不关心启动速度,所以不包含解释器,只有编译器,所以是世界上最快的JVM
  • J9:IBM的JVM,定位和HotSpot相近,号称世界上最快的JVM,在IBM产品上很稳定
  • CDC/CLDC HotSpot:java移动端的虚拟机
  • KVM:低端设备上,老人机\低端手机等
  • Azul\Liquid 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值