总体
堆,栈(虚拟机栈,本地方法栈),方法区,PC寄存器
堆
Eden,S0,S1(伊甸园,S0,S1)
Old(老生代)
Metaspace(元数据,方法区)
类信息,常量,静态变量,即时编译器编译后的代码
代码说明
//sa在Metaspace,
private static String sa = "";
public static void main(String[] args) {
//String类在Metaspace
while (true) {
//a=3,引用o,b,c都在虚拟机栈
//new Object(),new String[1024]
// 先在Eden,一次GC未清除掉到S1,再一次GC到S2,再再一次GC到Old
//Minor GC清理Eden,S1,S2
//Full GC清理所有,主要清理Old,Metaspace
int a = 3;
Object o = new Object();
String[] b = new String[1024];
//new String[1024000]大对象有可能直接到Old
String[] c = new String[1024000];
}
}
}