强引用、弱引用、软引用、虚引用

引入意义

单一的引用类型,不能很好的管理对象的生命周期,所以根据特性引入四种不同的引用类型

强引用

默认的都是强引用,在垃圾回收时判断是否可达,可达就不进行回收。

String str = "123";

弱引用

生命周期到下一次垃圾回收之前。

WeakReference<String> weakReference = new WeakReference<String>(new String("123"));

软引用

当内存不足的时候,软引用的对象被回收,一般用于缓存。

SoftReference<String> softReference = new SoftReference<String>(new String("123"));

虚引用

这种引用类型不会影响对象的生命周期,所持有的引用就跟没持有一样,随时都能被GC回收。虚引用主要用来跟踪对象被垃圾回收器回收的活动以及netty的内存泄漏检测。

推荐阅读更多精彩内容