JVM总结

1. JVM五大组成部分:

  1. PC
  2. 本地方法栈
  3. 方法区

2. GC:

2.1 内存管理机制

  • 显示内存管理
  • 隐式内存管理

2.2 GC算法

  • 引用计数法
  • 根搜索算法(标记算法)

2.2.1 GCroot:

就是一组必须活跃的引用.这些引用位于栈、方法区中。能通过其调用堆内存中的对象

  • 虚拟机栈中的引用对象
  • 方法区中的静态属性引用的对象
  • 方法区中常量引用的对象

2.2.2 引用链

从GC Root出发,向下搜索,直到目标节点,搜索所走的路径称为引用链(Reference chain)

2.2.3 回收标准

一个对象与任何根节点都不可达,即可回收

3. GC内存回收

  • Shallow size 对象本身所占用的内存
  • Retained size 回收一个对象后,连带着回收的其他引用对象的总内存

4.回收算法

4.1 标记清除算法

  • 会产生大量的内部碎片

4.2 标记整理算法

  • 移动耗时

4.3 复制算法

  • 利用率低,仅有一半的内存被利用

你可能感兴趣的:(JVM总结)