JVM引用分類

2022-10-11 05:03:09 字數 697 閱讀 5040

jdk1.2版之後,j**a對引用的概念進行了擴充,將引用分為強引用(strongly reference)、軟引用(soft reference)、弱引用(weak reference)和虛引用(phantom reference),這四種引用強度依次逐漸減弱。

強引用是最傳的「引用」定義,是指在程式**之中普遍存在的引用賦值,即類似「object obj = new object()」這種引用關係。在任何情況下,只要強引用關係還存在,垃圾收集器就永遠不會**掉被引用的物件。 

軟引用是用來描述一些還有用,但非必須的物件。只被軟引用關聯著的物件,在系統將要髮僧記憶體溢位前,會把這些物件列進**範圍之中進行第二次**,如果這次**還沒有足夠的記憶體,才會丟擲記憶體溢位異常。在jdk1.2之後提供了softreference類來實現軟引用。

弱引用也是用來描述那些非必須物件,但是它的強度比軟引用弱一些,被弱引用關聯的物件只能生存到下一次垃圾收集發生為止。當垃圾收集器開始工作,無論當前記憶體是否足夠,都會**掉只被弱引用關聯的物件。 在jdk1.2之後提供了weakreference類來實現弱引用。

虛引用也稱為「幽靈引用」或者「幻影引用」,它時最弱的一種引用關係。乙個物件是否有虛引用的存在,完全不會對其生存時間構成影響,也無法通過虛引用來取得乙個物件例項。 為乙個物件設定虛引用關聯唯一的目的只是為了能在這個物件被收集器**時收到乙個系統通知。在jdk1.2之後提供了phantomreference類來實現虛引用。

無限分類引用寫法

首先我們會獲取乙個陣列 list array array id 1,fid 0,title 中國 array id 2,fid 1,title 江蘇 array id 3,fid 1,title 安徽 array id 4,fid 8,title 江陰 array id 5,fid 3,title ...

jvm檢視類的引用及建立

1 jmap檢視建立的例項 解決一次spring註解生成空bean的過程。原因 contextloaderlistener和dispatcherservlet 父子關係導致的空bean。首先檢視埠 fanxin為執行類 檢視目標類例項個數 student為類名 dump出程序映象 jhat檢視引用關...

ARC自動引用計數和分類

1.物件自動釋放池的使用 person p person new autoreleasepool 快速建立類的類方法定義 instancetype person person p person person arc專案如何相容mrc的 專案 編譯選項 雙擊類檔案 fno objc arc 將乙個類中...