技术问答集锦(15)JVM内存模型

  1. 运行时常量池是方法区的一部分;
  2. Class 文件中的常量池(编译器生成的各种字面量和符号引用)会在类加载时被放入这个区域
  3. 除了 在编译期生成的常量,还允许动态生成
    ,例如 String 类的 intern()
    。这部分常量也会被放入运行时常量池;

在 JDK1.7之前,HotSpot 使用永久代实现方法区;HotSpot 使用 GC 分代实现方法区带来了很大便利;

从 JDK1.7 开始 HotSpot 开始移除永久代。其中符号引用(Symbols)被移动到 Native Heap中,字符串常量和类引用被移动到 Java Heap中。

在 JDK1.8 中,永久代已完全被元空间(Meatspace)所取代。 元空间的本质和永久代类似,都是对JVM规范中方法区的实现
。不过元空间与永久代之间最大的区别在于: 元空间并不在虚拟机中,而是使用本地内存
。因此, 默认情况下,元空间的大小仅受本地内存限制

原文 

https://juejin.im/post/5adefec26fb9a07ac85a0dea

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 技术问答集锦(15)JVM内存模型

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址