JVM内存结构的历史 (从Jdk1.6、1.7、8)

JVM内存结构的历史 (从Jdk1.6、1.7、8)从 JDK1 6 到 1 8 运行时内存分配简图分别如下 在 JDK1 7 中的 HotSpot 中 已经把原本放在方法区的字符串常量池移出 从 JDK7 开始永久代的移除工作 贮存在永久代的一部分数据已经转移到了 Java Heap 或者是 Native

欢迎大家来到IT世界,在知识的湖畔探索吧!

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

JVM内存结构的历史 (从Jdk1.6、1.7、8)

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

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

JVM内存结构的历史 (从Jdk1.6、1.7、8)

随着JDK8的到来:

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

欢迎大家来到IT世界,在知识的湖畔探索吧!

JVM内存结构的历史 (从Jdk1.6、1.7、8)

一、java7到java8的第一部分变化:元空间

下面来一张图看一下java7到8的内存模型吧(这个是在网上找的图,如有侵权问题请联系我删除。)

JVM内存结构的历史 (从Jdk1.6、1.7、8)

二、java7到java8的第二部分变化:运行时常量池

运行时常量池(Runtime Constant Pool)的所处区域一直在不断的变化,在java6时它是方法区的一部分;1.7又把他放到了堆内存中;1.8之后出现了元空间,它又回到了方法区。

Metaspace 结构是怎么样的?

JVM内存结构的历史 (从Jdk1.6、1.7、8)

参考:https://blog.csdn.net/weixin_/article/details/

感谢您的阅读,本文由 王欣的博客 版权所有。如若转载,请注明出处:王欣的博客(https://wangxin.io/2019/10/31/jvm/jvm_memory_change_history/)

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/97266.html

(0)
上一篇 2024年 12月 14日 上午11:15
下一篇 2024年 12月 14日 下午12:23

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信