GC 是由JVM自动完成的,根据JMV系统环境而定,所以时机是不确定的

1. 垃圾回收的方式

1.1 手动进行回收

调用System.gc()方法通知JVM进行一次回收,但是真正是否回收是由JVM控制的   
  • System.gc() 执行的fullGC

1.2 JVM自己回收

  • (1) 当Eden区或者Survivor区不够用了 –> 触发 youngGC
  • (2) 老年代不够用了 –> 触发 oldGC、MixGC、FullGC
  • (2) 方法区不够用了(matespace区) –> fullGC