JVM学习总结(二)堆

本章总结堆内存的结构和版本变化

JDK1.7:堆内存分三个区,新生代,老年代,永久代

  1. 新生代:Eden(伊甸园),servivor1,servivor2
  2. 老年代:old
  3. 永久代:perm

JDK1.8:堆内存还是分三个区,新生代,老年代,元空间

  1. 新生代:Eden(伊甸园),servivor1,servivor2
  2. 老年代:old
  3. 元空间:metaspace

知识小结:

  1. 在JDK8的时候,永久代被移除,用元空间替代。
  2. Eden: s1 : 2  默认分配内存为   8:1:1
  3. 新生代和老年代分配内存比例是1:2
  4. s1和s2分配的内存是相等的,因为垃圾回收复制算法需要这样。
  5. 方法区是一个规范,而永久代是它的实现。
  6. 关于字符串常量池,JDK6放在方法区中(永久代),JDK7后放在堆内存中。
  7. 当对象被调用15次而不被GC回收,就会被放入老年代。

猜你喜欢

转载自blog.csdn.net/weixin_43168480/article/details/107442364