Java虚拟机(JVM)深度解析
Java虚拟机(JVM)深度解析
-
- JVM概述
- JVM内存结构
-
- 堆内存详细分区
- 类加载机制
-
- 类加载流程
- 类加载器层次
- 执行引擎与运行时数据区
-
- 执行引擎核心组件
- 运行时数据区交互
- 垃圾回收机制(GC)
-
- GC算法分类
- 常见垃圾收集器
- JVM性能调优
-
- 常用参数示例
JVM概述
Java虚拟机(Java Virtual Machine, JVM)是Java程序运行的核心环境,负责将字节码(.class
文件)转换为机器码并执行。
核心特性:
-
平台无关性:一次编译,到处运行(Write Once, Run Anywhere)。
-
内存管理:自动内存分配与垃圾回收。
-
安全沙箱:限制Java程序对底层系统的直接访问。
(示意图:JVM核心组件:类加载器、运行时数据区、执行引擎)
JVM内存结构
JVM内存划分为多个区域,各司其职:
内存区域 | 描述 | 线程共享性 |
---|---|---|
堆(Heap) | 存放对象实例和数组,GC主要工作区域。 | 共享 |
方法区 | 存储类信息、常量、静态变量(JDK 8后由元空间Metaspace 替代永久代)。 |
共享 |
虚拟机栈 | 存储方法调用的栈帧(局部变量表、操作数栈、动态链接等)。 | 线程私有 |
本地方法栈 | 为Native方法(如C/C++代码)服务。 | 线程私有 |
程序计数器 | 记录当前线程执行的字节码指令地址。 | 线程私有 |