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