看看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中字符串常量池仍在堆中,而运行时常量池仍在方法区的常量池中,但方法区变成了元空间来实现
---------------------------------------------------------------------------------------------------
文章定期同步更新于公众号【小大白日志】,欢迎关注公众号:


浙公网安备 33010602011771号