强引用
Object object=new Object();
JVM 抛出OOM也不会释放对象
中断强引用类型:将null的值给对象即可
源码呈现:Vector的clear方法就是将引用赋值为:null<br>
软引用
SoftReference<Object> object=new SoftReference<Object>(new Object());
可用来实现内存敏感信息的高速缓存
使用软引用可用来防止内存泄露,增强程序的健壮性<br>
JVM在抛出OOM之前会回收软引用及对象,优先回收长时间闲置对象<br>
弱引用
WeakReference<Object> object=new WeakReference<Object>(new Object());
<span style="color: rgb(77, 77, 77); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 18px;">弱引用也是用来描述非必需对象的</span>
<span style="color: rgb(77, 77, 77); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 18px;">在java中,用java.lang.ref.WeakReference类来表示</span>
虚引用
ReferenceQueue<String> referenceQueue = new ReferenceQueue<String>();PhantomReference<String> object=new PhantomReference<String>(new String(),referenceQueue);
<span style="color: rgb(77, 77, 77); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 18px;">如果一个对象与虚引用关联,则跟没有引用与之关联一样,在任何时候都可能被垃圾回收器回收。</span>