最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java的四種引用方式

 更新時間:2021年10月28日 17:20:27   作者:Android帥次  
這篇文章主要介紹了Java的四種引用方式,Java的引用方式主要包括強引用、軟引用、弱引用、虛引用;下面文章便來詳細(xì)介紹這四種引用方式,需要的朋友可以參考一下

1.強引用(StrongReference)

  • 使用最普遍的引用。
  • 只要引用鏈沒有斷開,強引用就不會斷開。- 當(dāng)內(nèi)存空間不足,拋出OutOfMemoryError終止程序也不會回收具有強引用的對象。
  • 通過將對象設(shè)置為null來弱化引用,使其被回收
Object object = new Object();
String str = "scc";
//都是強引用

2.軟引用(SoftReference)

  • 對象處在有用但非必須的狀態(tài)
  • 只有當(dāng)內(nèi)存空間不足時, GC會回收該引用的對象的內(nèi)存。
  • 可以用來實現(xiàn)高速緩存(作用)--比如網(wǎng)頁緩存、圖片緩存
// 注意:wrf這個引用也是強引用,它是指向SoftReference這個對象的,
// 這里的軟引用指的是指向new String("str")的引用,也就是SoftReference類中T
SoftReference<String> wrf = new SoftReference<String>(new String("str"));

3.弱引用(WeakReference)

弱引用就是只要JVM垃圾回收器發(fā)現(xiàn)了它,就會將之回收。

  • 非必須的對象,比軟引用更弱一-些
  • GC時會被回
  • 被回收的概率也不大,因為GC線程優(yōu)先級比較低
  • 適用于引用偶爾被使用且不影響垃圾收集的對象 使用:
Map<Key, ResourceWeakReference> activeEngineResources = new HashMap<>();
//ResourceWeakReference弱引用

4.虛引用(PhantomReference)

  • 不會決定對象的生命周期
  • 任何時候都可能被垃圾收集器回收
  • 跟蹤對象被垃圾收集器回收的活動,起哨兵作用
  • 必須和引用隊列ReferenceQueue聯(lián)合使用

        當(dāng)垃圾回收器準(zhǔn)備回收一個對象時,如果發(fā)現(xiàn)它還有虛引用,就會把這個虛引用加入到與之 關(guān)聯(lián)的引用隊列中。

        程序可以通過判斷引用隊列中是否已經(jīng)加入了虛引用,來了解被引用的對象是否將要被垃圾回收。如果程序發(fā)現(xiàn)某個虛引用已經(jīng)被加入到引用隊列,那么就可以在所引用的對象的內(nèi)存被回收之前采取必要的行動。

Object obj = new Object();
ReferenceQueue queue = new ReferenceQueue();
PhantomReference reference = new PhantomReference(obj, queue);
//強引用對象滯空,保留軟引用
obj = null;

5. 引用隊列(ReferenceQueue)

  • 無實際存儲結(jié)構(gòu),存儲邏輯依賴于內(nèi)部節(jié)點之間的關(guān)系來表達(dá)
  • 存儲關(guān)聯(lián)的且被GC的軟引用,弱引用以及虛引用
到此這篇關(guān)于Java的四種引用方式的文章就介紹到這了,更多相關(guān)Java引用方式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

苍山县| 托克托县| 东莞市| 交口县| 宜良县| 石城县| 商丘市| 大姚县| 隆林| 阜康市| 沙河市| 鄂尔多斯市| 宁国市| 康平县| 托克逊县| 花莲市| 襄汾县| 邵武市| 北流市| 鲁甸县| 正宁县| 中宁县| 肥西县| 馆陶县| 巴青县| 昌平区| 南江县| 大方县| 丰顺县| 布尔津县| 囊谦县| 庆元县| 石家庄市| 汉阴县| 清流县| 道真| 织金县| 滦平县| 甘孜县| 简阳市| 陈巴尔虎旗|