java基础之弱引用

弱引用

弱引用是指使用 WeakReference wf=new WeakRerence<>(obj)或继承WeakReference类。继承WeakReference对象时必须要实现有参构造器,且不能存在无参构造。如果一个对象只有弱引用,无论内存是否充足,只要垃圾回收线程扫描到了弱引用,则会立即对其进行回收;因此相较于软引用来说,只拥有弱引用的对象具有更短暂的生命周期;但是垃圾回收线程的优先级很低,因此不一定会很快发现那些只具有弱引用的对象。

且WeakReference并没有实现get方法,因此弱引用无法获得强引用对象。

代码演示

public class WeakReferenceTest {

    public static void main(String[] args) {
        WeakReference<M> mWeakReference = new WeakReference<>(new M());

        System.out.println(mWeakReference.get());
        System.gc();

        try {
            Thread.sleep(500);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println(mWeakReference.get());

    }
}
posted @ 2023-06-08 10:26  King-DA  阅读(810)  评论(0)    收藏  举报