JAVA软引用指的是什么-创新互联

这篇文章给大家分享的是有关JAVA 软引用指的是什么的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

创新互联建站是一家专注于成都做网站、成都网站设计、成都外贸网站建设与策划设计,廉江网站建设哪家好?创新互联建站做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:廉江等地区。廉江做网站价格咨询:18980820575

定义

软引用是使用SoftReference创建的引用,强度弱于强引用,被其引用的对象在内存不足的时候会被回收,不会产生内存溢出。

说明

软引用,顾名思义就是比较“软”一点的引用。

当一个对象与GC Roots之间存在强引用时,无论何时都不会被GC回收掉。如果一个对象与GC Roots之间没有强引用与其关联而存在软引用关联时,那么垃圾回收器对它的态度就取决于内存的紧张程度了。如果内存空间足够,垃圾回收器就不会回收这个对象,但如果内存空间不足了,它就难逃被回收的厄运。

如果一个对象与GC Roots之间不存在强引用,但是存在软引用,则称这个对象为软可达(soft reachable)对象。

在垃圾回收器没有回收它的时候,软可达对象就像强可达对象一样,可以被程序正常访问和使用,但是需要通过软引用对象间接访问,需要的话也能重新使用强引用将其关联。所以软引用适合用来做内存敏感的高速缓存。

String s = new String("Frank");  // 创建强引用与String对象关联,现在该String对象为强可达状态
SoftReference softRef = new SoftReference(s);   // 再创建一个软引用关联该对象
s = null;    // 消除强引用,现在只剩下软引用与其关联,该String对象为软可达状态
s = softRef.get(); // 重新关联上强引用

文章名称:JAVA软引用指的是什么-创新互联
分享路径:http://hbruida.cn/article/dhghid.html