Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,OOM就是内存溢出,即Out Of Memory。也就是说内存占有量超过了VM所分配的最大。
从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。
强引用:GC宁愿抛出OOM,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题。
软引用:在OOM之前被GC回收掉,软引用可用来实现内存敏感的高速缓存。
弱引用:在垃圾回收器线程扫描它 所管辖的内存区域的过程中,一旦被GC发现了就回收。
虚引用:一旦创建了就被回收了,在任何时候都可能被垃圾回收。