微信搜索:小大白日志

看看JDK1.7与1.8的内存模型差异

JDK1.7与1.8的区别的内存模型差异?
jsk1.7的内存模型:
  • 堆分为初生代和老年代,大小比例为1:2,初生代又分为eden、from、to三个区域,大小比例为8:1:1
  • 方法区:有代码区、常量池(字符串常量池+运行时常量池)、静态域;jdk1.7把字符串常量池放到了堆中,运行时常量池仍在方法区的常量池中。
  • 方法区和永久代的关系:在hotspot虚拟机中,方法区是一种规范,永久代是这种规范的实现
jdk1.8的内存模型:
  • jdk1.8取消了永久代,而是用元空间来代替永久代实现方法区;元空间属于本地内存,故元空间大小受本地内存的限制,可用-XX:MetaspaceSize来设置元空间的初始大小(默认20.8M),可用-XX:MaxMetaspaceSize来设置元空间的上限大小(默认4G)
  • jdk1.7把字符串常量池放到了堆中,运行时常量池仍在方法区的常量池中。所以jdk1.8中字符串常量池仍在堆中,而运行时常量池仍在方法区的常量池中,但方法区变成了元空间来实现

 

---------------------------------------------------------------------------------------------------
文章定期同步更新于公众号【小大白日志】,欢迎关注公众号:

 

 

posted @ 2021-03-31 13:18  明天喝可乐  阅读(594)  评论(0)    收藏  举报