1.内存泄漏
内存泄漏指的其实是,有一些对象没有用了,但是这些对象没有办法正常回收。例如以GCRoot垃圾回收为例子,如果一个对象没有作用了,但是这个对象始终存在于GCRoot的引用链中,因此,最终导致这个对象无法被回收。导致“有效”内存空间变小。
2.内存溢出
内存溢出指的是,内存空间不足。当内存空间不足的时候,JVM会启用一次GC,如果内存空间还是不够,则报Out Of Memory error异常
3.System.gc()
这个方法是启动JVM的Full GC进行垃圾回收。但是这个方法不一定会调用成功。这个方法实际上是调用的Runtime.getRuntime().gc()这个方法。如果希望必须执行这个方法的话,可以System.runFinalization()用这个命令使得这Full GC强制执行。