强软弱虚引用

作者: 奔跑吧李博 | 来源:发表于2018-12-29 10:42 被阅读14次
四种引用的区别:

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


软引用使用例子:
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","还在");
    }
}

相关文章

  • 强软弱虚引用

    四种引用的区别: 强引用:如果一个对象具有强引用,那垃圾回收器绝不会回收它。软引用:如果一个对象只具有软引用,则内...

  • 强软弱虚引用

    一、强引用(StrongReference) 不会回收有强引用的对象。 除了强引用,其他的引用都需要借助java....

  • 强软弱虚引用

    强引用 简介: 强引用 (Strong Reference) 特征: 只有手动赋值为 null 才会被垃圾回收线程...

  • Java强软弱虚引用

    在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及...

  • 高并发编程之ThreadLocal

    强软弱虚 ThreadLocal 为什么Entry 的key 使用的是弱引用?

  • Android面试题大全-Java基础篇

    Java基础 内存泄漏的场景 强软弱虚引用分别什么区别 什么场景下使用虚引用 ClassLoader的双亲委派原理...

  • 强软弱虚引用如何理解

    强引用:我们平时最常使用的基本对象引用,JVM不会回收强引用类型对象,即使内存不足导致OOM也不会回收。 实现一个...

  • Java中的四种引用

    1.强软弱虚四种引用 1.1 强引用 执行结果: 解释:强引用是JVM的默认实现,即使内存不足会导致OOM(Out...

  • Java 引用 强软弱虚 和LruCache

    1.强引用 我们一般 XX a = new XX()就是 强引用,不会被回收,当内存不足时 报出out of me...

  • 强软弱虚引用以及threadlocal

    https://blog.csdn.net/qq1805696978/article/details/104106517

网友评论

    本文标题:强软弱虚引用

    本文链接:https://www.haomeiwen.com/subject/dihvxqtx.html