JAVA引用类型
JAVA引用类型
rainmanqqst 发表于8个月前
JAVA引用类型
  • 发表于 8个月前
  • 阅读 12
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

强引用

强引用是最普遍的引用,java垃圾回收机制不会回收强引用的对象。它的实现方式如下:

Object object = new Object();

只有当object这个对象使用完毕,失去引用后才可能会被回收。但是如果object是一个全局变量,那么只能通过object=null;强制使该对象失去引用,否则除非程序结束,该对象不会被回收。

软引用

 当使用软引用时,除非出现内存不足,否则不会触发回收机制。它的实现方式如下:

Object object = new Object();
SoftReference<Object> soft = new SoftReference<Object>(object);

弱引用

 当使用弱引用时,每次内存回收线程运行时,该对象都会被回收。它的实现方式如下:

Object object = new Object();
WeakReference<Object> weakReference = new WeakReference<Object>(object);   

虚引用

当使用虚引用时,在任何时刻该引用都有可能会被回收,相当于未被引用。虚引用主要用于跟踪对象被垃圾回收的活动。 当回收线程运行准备回收虚引用的对象时,会将该对象放入对应的引用队列中。通过监控这个引用队列,可以在对象被回收前进行一些处理。虚引用必须与ReferenceQueue一起使用。它的实现方式如下:

ReferenceQueue<Object> queue = new ReferenceQueue<>();
Object object = new Object();
PhantomReference<Object> phantomReference = new PhantomReference<>(object,queue);

 

标签: java 引用类型
共有 人打赏支持
粉丝 8
博文 57
码字总数 32306
×
rainmanqqst
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: