JavaGC机制概要
JavaGC机制概要
- 什么是GC?
垃圾回收是一种自动的存储管理机制。当一些被占用的内存不再需要时,就应该予以释放,以让出空间,这种存储资源管理,称为垃 圾回收(garbage collection)。垃圾回收器可以让程序员减轻许多负担,也减少程序员犯错的机会。 - 回收哪些内存?
1、通过可达性分析算法,分析需要被回收的对象,没有被GCRoot对象引用的是可以被回收的。
2、可以作为跟对象的对象:- 虚拟机栈中引用的对象
- 方法区中的类静态属性引用的对象
- 方法区中的常量引用的对象
- 本地方法栈中JNI(native方法)的引用的对象
- 如何回收?
通过垃圾回收算法进行内存回收
1. Marking-Sweep (标记-清除法)
2. Marking-Compat (标记-整理法) - JVM中的分代(堆内存)
年轻代、老年代、持久代 - 年轻代内存分配逻辑:
- Eden区
- Servivor0(s0),Servivor1(s1)
- 发生在年轻带的GC,minorGC(次要GC),发生在老年代的GC(majorGC)
More