java引用类型

java引用漫谈

jdk1.2以前,如果reference类型的数据中存储的数值代表的是另外一块内存的起始地址,就称这块内存代表着一个引用。这种情况下,一个对象只有被引用或没有被引用两种状态。

jdk1.2以后,Java对引用概念进行了扩充,将引用分为强引用、软引用、弱引用、虚引用四种。强度依次减弱。

引用的细分使得Java对内存回收的控制也更精细。

强引用

Object obj = new Object(); 只要引用存在,gc就不会回收被引用的对象。

软引用

用来描述还有用但不必需的对象。在系统将要发生内存溢出之前,列入回收范围进行回收。但如果内存足够,就不会回收

如果这次回收还没有足够的内存,才会抛出内存溢出的异常。

弱引用

描述非必需对象,但比弱引用更弱。

只能生存到下一次垃圾收集发生之前。无论内存是否足够,都会回收。

虚引用

又名幽灵引用或幻影引用,是最弱的一种引用关系。一个对象是否有虚引用存在,对其生存时间没有任何影响。

为一个对象设置虚引用的唯一目的就是能在对象被gc回收前收到一个系统通知。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值