JVM内存结构
2021-09-10 15:18:55 17 举报
JVM内存结构主要包括堆、栈、方法区和本地方法栈。堆是Java虚拟机所管理的内存中最大的一块,主要用于存放对象实例。栈是虚拟机执行Java方法服务的内存模型,每个方法被执行时都会创建一个栈帧用于存储局部变量表、操作数栈、常量池引用等信息。方法区用于存储已被加载的类信息、常量、静态变量等数据。本地方法栈则用于支持本地方法(Native Method)的执行。JVM内存结构的优化和管理对于提高应用程序的性能和稳定性至关重要。
作者其他创作
大纲/内容
mian线程
动态链接
局部变量
修改
Java栈(JVM Stack)
STW 执行gc时 会停止用户线程调优就是为了较少 full gc
栈帧数据
方法出口
15次minor gc没有消失 进入老年代
main()-栈帧
常量
s0(1/10)
Math
栈操作
执行引擎
数组
字节码文件(.class)
执行
类信息
String Table
本地方法栈(Native Method Stack)
静态变量+常量+类信息
为什么要设置STW机制?让用户线程先停掉,不要让它影响对象的状态。不能让我们的对象一会儿是垃圾一会儿不是垃圾。
字节码解释器
Survivor区
元空间(Meta Space)
垃圾收集(Garbage Collection)
操作数栈
垃圾收集线程
类装载子系统(ClassLoader)
线程共享
compute()栈帧
运行时数据区(Runtime Date Area)
年轻代
User
堆
OOM
线程私有
本地方发栈
程序计数器(Program Counter Register)
对象实例
本地内存
Java文件(.java)
Java堆(Java Heap)
老年代(2/3)
静态变量
本地库接口(Java Native Interface)
及时编译器(JLT Compiler)
本地方法库(Native Method Liberies)
s1(1/10)
Eden(8/10)
minor gc
栈(线程)
其他进程
full gc
方法区(Method Area)
Hello.class
0 条评论
下一页