字节码
JVM构成:类加载子系统、运行时数据区、执行引擎
类加载子系统
ExtClassLoader、AppClassLoader、WebAppClassLoader;
双亲委派
运行时数据区:本地方法栈、Java方法栈、方法区、程序计数器、堆
栈帧:局部变量表、操作数栈、方法返回地址、动态链接
堆:Eden→S0←(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) |