javap 反汇编 >文件名
1.执行引擎==》程序计数器(字节码文件的行号)==》栈(局部变量表,操作数栈,方法出口等)
==》堆(对象Object)==》方法区(java8叫元空间,存放Class)
2.本地方法栈:是系统本地的方法,java没有实现,只是去调用,例如Thread.sleep()
3.堆:(分代回收:让更少的对象进入老年代,像金字塔一样的晋升。性能调优:减少STW出现的次数)
新生代(约占1/3内存):
Eden(8)【伊甸园】:98%对象创建的地方
minor gc(gc roots【可达性算法】):回收没有被引用的对象
From(1):gc没有回收的对象,进入此区域,分代年龄age+=1,默认从0开始
To(1):大于等于二次gc后 与from区交换,内容和名字都交换
老年代(约占2/3内存):1.分代年龄age=15后进入老年代 2.创建对象内存占比超过from区的50%
full gc(STW【停顿】)