亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java的四種引用方式

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

1.強引用(StrongReference)

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

2.軟引用(SoftReference)

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

3.弱引用(WeakReference)

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

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

4.虛引用(PhantomReference)

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

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

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

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

5. 引用隊列(ReferenceQueue)

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

相關文章

  • 基于Java ORM框架的使用詳解

    基于Java ORM框架的使用詳解

    本篇文章是對Java中ORM框架的使用進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • 從架構思維角度分析分布式鎖方案

    從架構思維角度分析分布式鎖方案

    這篇文章主要介紹了從架構與思維的角度來分析分布式鎖的方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-01-01
  • java Zookeeper簡述

    java Zookeeper簡述

    ZooKeeper是一個分布式的,開放源碼的分布式應用程序協(xié)調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要組件。下面通過本文給大家分享java 中 zookeeper簡單使用,需要的朋友參考下吧
    2021-09-09
  • Java動態(tài)數組添加數據的方法與應用示例

    Java動態(tài)數組添加數據的方法與應用示例

    這篇文章主要介紹了Java動態(tài)數組添加數據的方法,結合實例形式詳細分析了Java動態(tài)數組的創(chuàng)建、添加、查找、打印等相關操作技巧,需要的朋友可以參考下
    2019-11-11
  • java 實現約瑟夫環(huán)的實例代碼

    java 實現約瑟夫環(huán)的實例代碼

    這一次是借鑒模仿別人寫的代碼,以前覺得不好將數據結構的鏈結構什么的遷移到java上來使用,但這一次確實讓我感受到了可以自己構造數據結構,然后使用類似鏈的方式來解決約瑟夫環(huán),有所頓悟。不多說,繼續(xù)上代碼
    2013-10-10
  • idea在plugins中搜不到插件的解決方法

    idea在plugins中搜不到插件的解決方法

    本文主要介紹了idea在plugins中搜不到插件的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • 解決Eclipse add external jars運行出現java.lang.NoClassDefFoundError的方法

    解決Eclipse add external jars運行出現java.lang.NoClassDefFoundErro

    本篇文章對Eclipse add external jars導致運行出現java.lang.NoClassDefFoundError的解決方法進行了詳細的分析介紹。需要的朋友參考下
    2013-05-05
  • 走進SpringBoot之配置文件與多環(huán)境詳解

    走進SpringBoot之配置文件與多環(huán)境詳解

    這篇文章主要介紹了走進SpringBoot之配置文件與多環(huán)境,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • 通過Java修改游戲存檔的實現思路

    通過Java修改游戲存檔的實現思路

    這篇文章主要介紹了通過Java修改游戲存檔的實現思路,實現方法也很簡單,因為植物大戰(zhàn)僵尸游戲的數據文件存儲在本地的存儲位置是已知的,因此我們可以將實現過程拆分為三個步驟,需要的朋友可以參考下
    2021-10-10
  • Java Spring IOC圖文詳解

    Java Spring IOC圖文詳解

    IoC是一種讓服務消費者不直接依賴于服務提供者的組件設計方式,是一種減少類與類之間依賴的設計原則。下面通過本文給大家分享spring中ioc的概念,感興趣的朋友一起看看吧
    2021-09-09

最新評論