Skip to content

Latest commit

 

History

History
48 lines (32 loc) · 938 Bytes

File metadata and controls

48 lines (32 loc) · 938 Bytes

Java

集合

HashMap

ConcurrentMap

垃圾回收

内存区域

  • 程序计数器
  • 虚拟机栈
  • 本地方法栈
  • Java堆
  • 方法区:常量、静态变量、加载的类信息、即时编译器编译后的代码

对象存活判断

  • 引用计数法
  • 可达性分析算法:当对象与GC Roots之间没有任何引用链相连时,对象可以被回收

GC Roots:

  • 栈中局部变量引用的对象
  • 方法区中静态变量或常量引用的对象

垃圾回收算法

  • 标记-清除算法
  • 复制算法:适用于新生代
  • 标记-整理算法:适用于老年代

垃圾收集器

1、CMS收集器

回收老年代

  • 初始标记:STW
  • 并发标记
  • 重新标记:STW
  • 并发清除

2、G1收集器

将整个Java堆划分为多个大小相等的独立区域(Region),优先回收价值最大的Region

  • 同时回收新生代和老年代
  • 停顿可预测