一 点睛
现代垃圾收集器大部分都是基于分代收集理论设计,堆空间细分如下。
Java 7及之前堆内存逻辑上分为三部分:新生区 + 养老区 + 永久区
-
Young Generation Space 新生区 Young/New 又被细分划分为 Eden 区和 Survivor 区
-
Tenure generation space 养老区 Old/Tenure
-
Permanent Space 永久区 Perm
Java 8及之后堆内存逻辑上分为三部分:新生区 + 养老区 + 元空间
-
Young Generation Space 新生区 Young/New 又被细分划分为 Eden 区和 Survivor 区
-
Tenure generation space 养老区 Old/Tenure
-
Meta Space 元空间 Meta
约定:新生区 <-> 新生代 <-> 年轻代养老区 <-> 老年区 <-> 老年代永久区 <-> 永久代
堆空间内部结构,JDK1.8之后从永久代替换成元空间。
堆内存只给新生区和永久区分配内存。
二 实战
1 代码
package com.atguigu.java.chapter08;
/**
* -Xms10m -Xmx10m -XX:+PrintGCDetails
*/
public class HeapDemo {
public static void main(String[] args) {
System.out.println("start.........");
}
}
2 测试
a 8.0 版本——使用的是元空间
b 7.0 版本——使用的是永久代