Java面试题之GC

1.GC是什么?
GC(Generational Collection):是一种分代收集算法,用于释放JVM中那些不再使用的对象所占用的内存。
2.GC发生在哪里?
GC发生在堆(heap)中

分代收集是根据对象存活的周期的不同将内存划分为几块。

次数上频繁收集Young(年轻)区 Minor GC
次数上较少收集Old(老年)区 Full GC
基本不动Perm(永久)区

3.垃圾收集算法
1.引用计数法
Java面试题之GC
2.复制算法
年轻代中使用的是Minor GC.这种GC算法采用的是复制算法(Copying )
Java面试题之GC
3.标记清除
老年代一般是由标记清除或者标记清除与标记整理的混合实现
Java面试题之GC
4.标记压缩(老年代中)
Java面试题之GCJava面试题之GC

Java语言没有提供释放已分配内存的显示操作方法。
程序员可以手动执行System.gc(),通知GC运行,但是Java语言规范并不保证GC一定会执行。