JVM 介绍
1 什么是 JVM
JVM 是 Java Virtual Machine(Java 虚拟机)的缩写。一台执行 Java 程序的机器。
2 JAVA 语言的执行原理
计算机语言:
计算机能够直接执行的指令。这种指令和系统及硬件有关。
计算机高级语言:
在遵循语法的前提下,写一个文本文件,之后利用某种方式,把文本转换为计算机指令
执行。
A. 编译型语言(C 语言):文本文件(.c) --> 编译器 --> 可执行文件(.exe) -->
执行机器指令。特点:运行速度快,但不能跨平台
B. 解释型语言(JavaScript):文本文件 --> 解释器 --> 翻译成机器指令并执
行。特点:运行速度较慢,但能跨平台
JAVA 语言:先编译,后解释执行
文本文件(java) --> 编译器 --> class 文件(虚拟指令) --> JAVA 虚拟机(JVM)–> 解释为指令执行。
JDK+JRE+JVM
(1)JDK(IAVA开发环境)=:JRE+工具(编译器、调试器、其他工具)+类库
编译器:将JAVA文件编译为JVM能够看懂的文件(class文件)
(2)JRE(JAVA运行环境):JVM+JAVA解释器
Java解释器:将虚拟指令解释为机器指令执行。
(3)JVM(JAVA虚拟机)
JAVA字节码文件结构
打开class文件查看结构
什么是 u2,u4?
u2:代表数据占两个字节
u4:代表数据占四个字节
JDK 编译对应的版本号
- JDK7 --> 51
- JDK8 --> 52
- JDK9 --> 53
- JDK15 --> 59
结论
编译的本质就是将 java 源文件转为 JVM 能够认识的 16 进制 class 文件格式
JVM内存区域
JVM执行引擎
堆内存模型
可达性分析
类加载过程
栈帧
栈帧的结构