星空网 > 软件开发 > Java

Java 引用

Java 对象的引用方式有如下四种,这四种方式主要是为了给垃圾回收提供更灵活的操作:

1、强引用,最常见的引用方式,当一个对象被一个或一个以上的引用变量引用时,它处于可达状态,这时不会被垃圾回收器回收。

2、软引用(SoftReference),通常用于内存敏感的程序中,当一个对象只有软引用时,当系统空间足够时,系统不会回收它,当系统空间不够时,系统可能回收它。

3、弱引用(WeakReference),不管系统空间是否足够,总会回收该对像所占用的内存。

4、虚引用(PhangtomReference),类似与完全没有引用,虚引用主要用于跟踪对象被垃圾回收的状态,它不能单独使用,必须和引用队列(ReferenceQueue)一起使用,当该引用的对象被垃圾回收之后,虚引用将进入引用队列中,虚引用不能通过get方法,获取正常的引用。

示例如下:

import java.lang.ref.PhantomReference;import java.lang.ref.ReferenceQueue;public class PhantomReferenceTest {  public static void main(String[] args) {    String str = new String("Hello World");    ReferenceQueue referenceQueue = new ReferenceQueue<>();        PhantomReference<String> phantomReference = new PhantomReference<String>(str, referenceQueue);        str = null;        System.out.println(phantomReference.get());        System.gc();    System.runFinalization();        System.out.println(referenceQueue.poll() == phantomReference);  }}

运行结果:

nulltrue

虚引用不能通过虚引用访问被引用的对象,但是当垃圾回收后,虚引用进入了ReferenceQueue。




原标题:Java 引用

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

英达沃体育:https://www.goluckyvip.com/tag/47884.html
英国 fba 头程:https://www.goluckyvip.com/tag/47885.html
英国fba 头程:https://www.goluckyvip.com/tag/47886.html
英国fba仓:https://www.goluckyvip.com/tag/47887.html
英国fba超重标签:https://www.goluckyvip.com/tag/47888.html
英国fba大件:https://www.goluckyvip.com/tag/47889.html
斥资210万美元,TikTok游说美国参议院阻止法案:https://www.kjdsnews.com/a/1836541.html
斥资210万美元,TikTok游说美国参议院阻止法案:https://www.goluckyvip.com/news/188213.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流