强软弱虚引用

四种引用的区别:

强引用:如果一个对象具有强引用,那垃圾回收器绝不会回收它。
软引用:如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。软应用常用来做内存敏感的缓存。
弱引用:一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存。不过,由于垃圾回收器是一个优先级很低的线程,因此不一定会很快发现那些只具有弱引用的对象,所以弱引用仍然可以用来做缓存。
虚引用:如果一个对象仅持有虚引用,那么它就和没有任何引用一样,在任何时候都可能被垃圾回收器回收。


软引用使用例子:
private void useSoftReference(){
    Object object = new Object();

    WeakReference<Object> softReference = new WeakReference(object);

    isNull(softReference.get());


    object = null;
    System.gc();

    try {
        Thread.sleep(3000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

    isNull(softReference.get());
}

private void isNull(Object object){
    if(object == null){
        Log.i("minfo","消失了");
    }else{
        Log.i("minfo","还在");
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容