JAVA虚拟机系列: (一) . JDK1.6/ 1.7/ 1.8运行时内存分配简要图解

注意:

    1. 本文讨论均为JDK官方版本, 默认采用的HotSpot虚拟机;

    2. 图片为本人绘制, 转载请标明出处;

    3.本博均为个人理解, 如有分歧, 欢迎指正和讨论

 

从JDK1.6到1.8, 运行时内存分配简图分别如下:

 

在JDK1.7中的HotSpot中,已经把原本放在方法区的字符串常量池移出。

  从JDK7开始永久代的移除工作,贮存在永久代的一部分数据已经转移到了Java Heap或者是Native Heap。但永久代仍然存在于JDK7,并没有完全的移除:符号引用(Symbols)转移到了native heap;字面量(interned strings)转移到了java heap;类的静态变量(class statics)转移到了java heap。

随着JDK8的到来:

    JVM不再有PermGen。但类的元数据信息(metadata)还在,只不过不再是存储在连续的堆空间上,而是移动到叫做“Metaspace”的本地内存(Native memory)中。

参考:

    1. <深入理解JAVA虚拟机-周志明-第二版>

    2.  https://www.cnblogs.com/dennyzhangdd/p/6770188.html#_label3

    3.  https://blog.csdn.net/tophawk/article/details/78704074#commentsedit

----------------------------------------------------------------------------完--------------------------------------------------------------------------------------------

转载请标明出处: 划船一哥 

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值