字节码

JVM构成:类加载子系统、运行时数据区、执行引擎

类加载子系统

ExtClassLoader、AppClassLoader、WebAppClassLoader;

双亲委派
运行时数据区:本地方法栈、Java方法栈、方法区、程序计数器、堆

栈帧:局部变量表、操作数栈、方法返回地址、动态链接

堆:EdenS0(15)S1老年代

Young GC/Minor GC:新生代垃圾回收

Old GC/Major GC:老年代垃圾回收

Full GC:整堆回收

垃圾标记阶段:

引用计数法(不能处理循环引用)、

标记-清除算法(Mark-Sweep)、复制(Copying)算法、标记-整理(Mark-Compact)算法

分代收集算法:新生代存活时间短使用复制算法、老年代存活时间长使用标记整理算法

常见垃圾收集器

name
Serial GC串行新生代复制算法
Serial Old GC串行老年代标记-整理算法
Parallel GC并行新生代复制算法
Parallel Old GC并行老年代标记-整理算法
CMS并行老年代标记-清除算法(STW时间变短,但吞吐量更低)
G1(Garbage-First)