Java中内存溢出内存泄漏的相关解释

75 阅读1分钟

1.内存泄漏

内存泄漏指的其实是,有一些对象没有用了,但是这些对象没有办法正常回收。例如以GCRoot垃圾回收为例子,如果一个对象没有作用了,但是这个对象始终存在于GCRoot的引用链中,因此,最终导致这个对象无法被回收。导致“有效”内存空间变小。

2.内存溢出

内存溢出指的是,内存空间不足。当内存空间不足的时候,JVM会启用一次GC,如果内存空间还是不够,则报Out Of Memory error异常

3.System.gc()

这个方法是启动JVM的Full GC进行垃圾回收。但是这个方法不一定会调用成功。这个方法实际上是调用的Runtime.getRuntime().gc()这个方法。如果希望必须执行这个方法的话,可以System.runFinalization()用这个命令使得这Full GC强制执行。