Java对象的四种引用方式实例分析

网友投稿 253 2022-12-31


Java对象的四种引用方式实例分析

本文实例讲述了java对象的四种引用方式。分享给大家供大家参考,具体如下:

一 点睛

Java语言对对象的引用有如下四种方式

强引用:我们平时一般都是这种引用,当一个对象被一个或一个以上的引用变量所引用时,它处于可达状态,不可能被系统垃圾回收机制回收。

软引用:软引用需要通过SoftReferenchttp://e类来实现,当一个对象只具有软引用时,它有可能被垃圾回收机制回收。对于只有软引用的对象而言,当系统内存空间足够时,它不会被系统回收,程序也可以使用该对象,当系统内存空间不够时,系统可能回收它。软引用通常用于对内存敏感的程序中。 

弱引用:弱引用通过WeakReference类实现,弱引用和软引用很像,但弱引用的引用级别更低。对于只有弱引用的对象而言,当系统垃圾回收机制运行时,不管系统内存是否足够,总会回收该对象所占用的内存。当然,并不是说当一个对象只有弱引用时,它就会被立即回收,而是必须等到系统垃圾回收机制运行时才会被回收。

虚引用:虚引用通过PhantomReference类实现,虚应用完全类似于没有引用。虚引用对对象本身没有太大影响,对象甚至感觉不到虚引用的存在。

二 实战——若弱引用所引用对象的垃圾回收过程

1 代码

import java.lang.ref.*;

publiykmqMvJMtWc class ReferenceTest {

public static void main( String[] args )

throws Exception {

// 创建一个字符串对象

String str = new String("疯狂Java讲义");

// 创建一个弱引用,让此弱引用引用到"疯狂Java讲义"字符串

WeakReference wr = new WeakReference(str); //①

// 切断str引用和"疯狂Java讲义"字符串之间的引用

str = null; //②

// 取出弱引用所引用的对象

System.out.println(wr.get()); //③

// 强制垃圾回收

System.gc();

System.runFinalization();

// 再次取出弱引用所引用的对象

System.out.println(wr.get()); //④

}

}

2 图解

3 运行

疯狂Java讲义

null

更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:微服务网关研究现状(微服务网关的主要功能)
下一篇:接口测试工具银行(银行项目测试接口测试)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~