美文网首页Java学习笔记
Java对象的引用方式

Java对象的引用方式

作者: chordwang | 来源:发表于2017-02-04 21:49 被阅读41次

    系统对对象的引用方式

    1. 强引用(StrongReference)

    这是java最常见的引用方式。

    程序创建一个对象,并把这个对象赋给一个引用变量,程序通过该引用变量来操作实际的对象。

    String str = new String("Hello World");//强引用
    

    2. 软引用(SoftReference)

    当一个对象只有软引用时,它有可能被垃圾回收机制回收(系统内存足够时,不会被回收;系统内存不足时,可能会被回收)

    String str = new String("Hello World");//强引用
    SoftReference softR = new SoftReference(str);//软引用
    

    3. 弱引用(WeakReference)

    对于只有弱引用的一个对象,当垃圾回收机制运行时,不管系统内存是否足够,总会回收该对象所占用的内存

    String str = new String("Hello World");//强引用
    WeakReference weakR = new WeakReference(str);//弱引用
    

    4. 虚引用(PhantomReference)

    虚引用完全类似没有引用。虚引用对对象本身没有太大影响,对象甚至感觉不到虚引用的存在。

    虚引用主要用于跟踪对象被垃圾回收的状态,虚引用不能单独使用,它必须和引用队列(ReferenceQueue)联合使用。

    ReferenceQueue

    用于保存被回收后对象的引用。

    当联合使用软引用,弱引用和引用队列时,系统在回收被引用的对象之后,将把被回收对象的引用添加到关联的引用队列中。

    与软引用,弱引用不同的是,虚引用在对象被回收之前,将把它对应的虚引用添加到它关联的引用队列中,这使得可以在对象被回收之前采取行动。

    相关文章

      网友评论

        本文标题:Java对象的引用方式

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