JVM 内存模型
48.42 KB
1 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
中文(简体) | .pptx | 3 |
摘要 | ||
文档描述了JVM内存模型的主要组成部分,包括堆、方法区、运行时常量池以及线程私有的程序计数器、虚拟机栈和本地方法栈。堆和方法区为线程共享,而程序计数器、虚拟机栈和本地方法栈则为每个线程私有。内存模型还包括新生代和老年代的划分,如Eden、From Survivor、To Survivor、Old Space等。 | ||
AI总结 | ||
## JVM 内存模型总结
JVM(Java虚拟机)内存模型主要分为线程私有区域和线程共享区域两大部分。
**线程私有区域**包括:
- **程序计数器(PC Register)**:记录当前线程执行的位置。
- **虚拟机栈(JVM Stack)**:存储方法调用的栈帧,每个方法调用对应一个栈帧。
- **本地方法栈(Native Method Stack)**:支持-native方法的栈。
**线程共享区域**包括:
- **堆(Heap)**:内存最大的区域,用于存储对象实例和数组。分为新生代和老年代。
- 新生代又分为Eden区、From Survivor区和To Survivor区,用于存储短生命周期的对象。
- 老年代用于存储长生命周期的对象,垃圾回收频率较低。
- **方法区(Method Area)**:存储类信息、常量、静态变量和即时编译器编译后的代码。JDK8后用于实现元空间。
- **运行时常量池(Runtime Constant Pool)**:存储Class文件中的常量信息(如文字字符串、类名、方法名等),在方法区内。
**特点**:
- 线程私有区域确保线程安全,避免内存竞争。
- 堆和方法区是线程共享的资源,需要注意线程安全问题。 |
P1
下载文档到本地,方便使用
文档评分