强引用、弱引用、软引用、虚引用
2019-04-10 本文已影响0人
n油炸小朋友
引入意义
单一的引用类型,不能很好的管理对象的生命周期,所以根据特性引入四种不同的引用类型
强引用
默认的都是强引用,在垃圾回收时判断是否可达,可达就不进行回收。
String str = "123";
弱引用
生命周期到下一次垃圾回收之前。
WeakReference<String> weakReference = new WeakReference<String>(new String("123"));
软引用
当内存不足的时候,软引用的对象被回收,一般用于缓存。
SoftReference<String> softReference = new SoftReference<String>(new String("123"));
虚引用
这种引用类型不会影响对象的生命周期,所持有的引用就跟没持有一样,随时都能被GC回收。虚引用主要用来跟踪对象被垃圾回收器回收的活动以及netty的内存泄漏检测。