JavaSE---引用

Posted anpeiyong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaSE---引用相关的知识,希望对你有一定的参考价值。

1、概述

    1.1、JDK1.2前,java中引用的定义:   

          如果  引用类型数据  存储的是   另一块内存的起始地址,就称  这块内存代表一个引用(一个对象 只有 被引用、未被引用 2种状态);

    1.2、有些场景下,当内存足够时,对象可以保留在内存中,如果  内存在垃圾回收后仍然紧张,可以抛弃这些对象

    1.3、JDK1.2后,提供了  (引用强度依次减弱)

          强引用(Strong Reference):

              类似 Object o=new Object(),只要强引用存在,GC永远不会回收被引用的对象;

          软引用(Soft Reference):

              作用:   描述  一些   有用   但   非必需的对象

              软引用 关联的对象,在   系统将要发生内存溢出之前,将会把软引用对象  列入 回收范围内  进行 第二次回收

              JDK提供了SoftReference类实现软引用;

          弱引用(Weak Reference):

              作用:  描述  一些  有用   但   非必需的对象

              弱引用  关联的对象,只能生存到下次GC之前,下一次GC 会进行回收

              JDK提供了WeakReference类实现弱引用;

          虚引用(Phantom Reference):

              作用: 为一个对象设置 虚引用,目的希望能   在这个对象被GC时  收到一个系统通知

              又称为   幽灵引用、幻影引用;

              一个对象    是否存在 虚引用,不会 对其生存时间构成影响无法通过虚引用 取得一个对象实例

              JDK提供  PhantomReference类实现虚引用;

              

          

以上是关于JavaSE---引用的主要内容,如果未能解决你的问题,请参考以下文章

JavaSE-Stream方法引用

JavaSE-基础语法

JavaSE8基础 多态 强制转换 父引用转成子引用

javase学习第10天

JavaSE-Java8-Lambda方法引用

JavaSE8基础 函数返回抽象类的引用,这个引用指向的是子类的对象