JVM学习1
分类:
文章
•
2025-01-03 11:44:40
- JVM整体结构
- Java所使用的虚拟机默认为:HotSpot VM,其目前是市面上高性能虚拟机的代表作之一,采用解释器与即时编译器并存的架构
-

- 类加载器子系统(Class Loader):负责class文件的加载。将字节码文件加载到内存中,生成大的class对象,这个过程中会涉及到加载、链接、初始化等过程。
- 方法区:存储类的方法代码、变量名、返回值等信息。其可被多线程共享。
- 堆:存放所有new出来的对象,可被多线程共享。
- 虚拟机栈:存放基本类型的变量数据和对象的引用,用于描述java方法执行的内存模型。
- 本地方法栈:服务的对象是JVM执行的native方法。
- 程序计数器:是一个记录着当前线程所执行的字节码的行号指示器
- 执行引擎:由解释器、JIT即时编译器、垃圾回收器组成,高级语言到机器语言的翻译者。
- Java代码执行流程
- 流程:java程序-->字节码文件(.class)-->类的加载-->字节码校验器-->翻译字节码-->JIT编译器-->操作系统
- 主流编译器采用的是翻译字节码(解释执行)和JIT编译器(编译执行)并存
- 解释字节码:保证响应时间,对字节码逐行解释执行
- JIT编译器:即二次编译,保证程序的性能。
- JVM架构模型
- 现存的指令集架构主要分为两种:基于栈的指令集架构、基于寄存器的指令集架构。HotSpot采用的是基于栈的指令集架构,其只含有PC寄存器,不含有其他寄存器。
- JVM的生命周期:
- 启动:Java虚拟机的启动时通过引导类加载器(bootstrap class loader)创建一个初始类(initial class)来完成的,这个类是由虚拟机的具体实现指定的。
- 执行:程序开始时他才开始,程序结束时他才结束,执行一个java程序时,真正在执行的是一个java虚拟机的进程
- 退出