JVM虚拟机运行时内存分配
2021-08-03 09:33:13 4 举报
JVM虚拟机运行时内存分配
作者其他创作
大纲/内容
survior1to(1/10)
stack
main
Stack栈User u = new User()
年轻代1/3
heap堆
heap
{User useruser=}
survior0from(1/10)
eden(8/10)
1.直接指向:一次指向,但是对象发生变化时需要重新指2.句柄指针:两次指向,对象发生变化时不需要重新指
句柄池user=0x124
本地方法栈
newUser()
Runtime Date areas
老年代2/3
1.程序计数器:java方法:虚拟机字节码指令的地址native方法:undifined线程私有2.本地方法栈native的栈3.stack每个方法对应一个虚拟机栈。私有的局部变量(方法内的变量),操作数栈4.方法区(永久代(hotspot)) 共享 (方法区可以看作接口,永久代可以看作实现) 1.6有永久代,常量池放到方法区 1.7有永久代,常量池放到堆中 1.8元空间,64位jvm默认21M永久代使用jvm内存,元空间占用本地内存 5.堆new出来的大部分对象都放到堆中,堆是GC的主要区域。
方法区运行时常量池
程序计数器
收藏
0 条评论
下一页