目录
1. JVM概述
1.1. Java程序结构
1.2. JVM作用
1.3. JVM规范和实现
2. JVM功能
2.1. 功能-编译和运行
2.2. 功能-内存管理
2.3. 功能-即时编译
1. JVM概述
1.1. Java程序结构
1.2. JVM作用
JVM全称是Java Virtual Machine-Java虚拟机
- JVM作用:本质上是一个运行在计算机上的程序,职责是运行Java字节码文件,编译为机器码交由计算机运行
1.3. JVM规范和实现
- JVM规范:
-
- Oracle官网:JDK 24 Documentation - Home
- <Java虚拟机规范>由Oracle制定,内容主要包含了Java虚拟机在设计和实现时需要遵守的规范,主要包含class字节码文件的定义、类和接口的加载和初始化、指令集等内容。
- <Java虚拟机规范>是对虚拟机设计的要求,而不是对Java设计的要求,也就是说虚拟机可以运行在其他的语言比如Groovy、Scala生成的class字节码文件之上。
- JVM常见实现:
2. JVM功能
2.1. 功能-编译和运行
- 编译字节码文件:实时编译字节码中文件中的指令,成为机器码之后交由计算机运行
2.2. 功能-内存管理
- 内存分配:JVM会自动为对象,方法等分配内存
- 垃圾回收:JVM中的垃圾回收机制会自动的回收不被引用的对象
2.3. 功能-即时编译
- 即时编译的作用:字节码指令可以实时解释为不同操作系统的机器码,这样就支持了跨平台运行
- 即时编译优化:对于热点代码的机器码会保存在系统内存,再次执行可直接调用,提升执行效率
-
- 优化的原因:Java不做优化的性能是不如C,C++的,因为Java需要实时编译字节码指令再交给机器运行,而C,C++可以直接将源文件编译为可执行文件
- 优化的原因:Java不做优化的性能是不如C,C++的,因为Java需要实时编译字节码指令再交给机器运行,而C,C++可以直接将源文件编译为可执行文件