虚引用 ( 回收前通知 )
如果单纯的想避免 OOM , 可以使用软引用 ;
如果对性能要求很高 , 要最大限度节省内存 , 所有的内存回收都要及时处理 , 就使用弱引用 ;
内存泄漏原理 : 长生命周期对象..., 持有短生命周期对象的引用 , 并且是强引用持有 , GC 无法释放该短生命周期对象引用 , 造成 OOM ;
一、 Java 引用类型 ( 强、软、弱、虚 )
----
1...., 但不是必须的对象 , 对象被软引用引用 , 当系统内存严重不足 , 在报出 OutOfMemoryError 错误之前就会将软件用释放掉 , 如果将软引用释放掉之后 , 还是内存不足 , 就会报..., 直接回收 , 即使内存足够 , 也要回收该对象所占用的内存 ;
④ 虚引用 : 虚引用无法获得被引用的对象 , 其唯一的作用是对象被回收时 , 可以得到相应的通知 ; 虚引用不会对对象的生存周期造成影响任何...(softObject, referenceQueue);
④ 上述软引用释放 : 创建的软引用在两种情况下才会释放 :
软引用置空 : GC Root 不可达时回收 ;
内存不足 : 内存不足 ,