JVM运行时数据区划分

   最近在看《深入理解Java虚拟机这本书》,写些文章是自己做些笔记防止遗忘也是对书章节的概述。权威还是参考该书。

   部分虚拟机是把JVM所管理的内存划分为5个数据区域,见下表:

 


下面是对这些区域的一些补充说明:

程序计数器:Java虚拟机的多线程是通过线程的轮流切换并分配处理器的执行时间来实现的,在任何一个确定的时刻,一个处理器都只会执行一条线程中的指令。因此为了线程每次切换后能恢复到正确位置,每条线程都需要一个独立的程序计数器。

局部变量表:存放的是可知的基本数据类型,对象引用,returnAddress类型(指向一条字节码指令的地址)。

方法区:在现在的HotSpot中,把原本放在永久代的字符串常量池移出。现在称方法区为永久代已经不合适了。这个区域内存回收的目标主要是针对常量池的回收和对类型的卸载。方法区和堆一样可以不需要连续的内存,只要逻辑上连续即可。

运行时常量池:是方法区的一部分,用于存放编译器生成的各种字面量和符号引用。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值