课程逻辑
- JVM与java体系结构
- 类加载子系统
- 运行时数据区
- 执行引擎
- 垃圾回收
多语言混合编程:
其他语言通过自己的编译器生成jvm字节码文件,也可以在jvm上运行
jvm定义:
jvm就是二进制字节码
jvm特点:
- 一次编译,到处运行
- 自动内存管理
- 自动垃圾回收功能
jvm位置
- 由下向上:硬件->操作系统->JVM->字节码文件->用户程序
- 包含关系 jvm包含在jre内,jre包含中jdk内
- jdk比jre多了api以及java语言
jvm整体结构
-
hotspot结构图如下:
jvm整体结构 -
多线程共享方法区、堆
单线程单独拥有java栈、本地方法栈、程序计数器(程序计数寄存器) -
执行引擎
将字节码翻译成二进制机器指令
JIT编译器:编译执行(二次编译)、并将热点代码的机器指令缓存起来,和JVM的性能有关系
JVM的架构模型
- 基于栈式结构
使用零地址指令方式分配
栈是内存层面的,不需要硬件支持,可移植性好,更好实现跨平台。
- 基于寄存器架构
反编译命令:javap -v
由于跨平台性的设计,java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。
优点:跨平台,指令集小
JVM的生命周期
- 启动
通过引导类加载器创建一个初始类,这个类由具体虚拟机指定 - 执行
执行java程序,真正执行的是一个jvm进程 - 关闭
关闭的几种方式:- 程序正常执行结束
- 遇到异常或错误终止
- Runtime或者System的exit方法
- 操作系统错误
JVM发展历程
HotSpot指的是热点代码探测技术
通过计数器找到最具编译价值代码
通过编译器和解释器协同工作,在最优化的程序响应时间与最佳执行性能中取得平衡
网友评论