強引用,軟引用,弱引用,虛引用

2021-07-22 12:40:02 字數 512 閱讀 1377

強引用就是我們通常意義上的引用,類似」object object=new object();」,只要強引用在,就不會被gc。

軟引用,這種物件就是拿來jvm拿來防止記憶體溢位的乙個措施,當jvm要進行記憶體洩露的時候就會把這種物件進行**,如果記憶體還不夠,才會丟擲outofmemoryerror。

softreferencesoftreference=new softreference<>(new a());
弱引用,弱引用就更加悲劇了,軟引用是只要發生gc就會被**

weakreferenceweakreference=new weakreference<>(new a());
虛引用,虛引用是及其弱的乙個引用,你不能通過虛引用拿到它的物件,它的唯一作用就是可以通過虛引用感知到有沒有發生gc。

為什麼會存在這麼多引用了,我看了一些網上的部落格,importnew裡面有一篇部落格講出了其中的道理,軟引用和弱引用就是拿來促進gc的不讓它出現記憶體洩露的情況。

強引用,軟引用,弱引用

強引用 強引用設定為空,物件立馬會被 public class normalreference classm 軟引用 軟引用當引用存在的時候,只有當記憶體不足的時候才去 public class t0 softreference catch exception e system.out.printl...

四種引用 強引用 弱引用 軟引用和虛引用

j a執行gc判斷物件是否存活有兩種方式其中一種是引用計數。引用計數 j a堆中每乙個物件都有乙個引用計數屬性,引用每新增1次計數加1,引用每釋放1次計數減1。在jdk 1.2以前的版本中,若乙個物件不被任何變數引用,那麼程式就無法再使用這個物件。也就是說,只有物件處於 reachable 可達狀態...

java 軟引用 弱引用 虛引用

軟引用 用softreference類來標記,被軟引用標記的物件,只有在記憶體不足的時候,gc才會 該物件。弱引用 用weakreference類來標記,被弱引用標記的物件,在gc時,無論記憶體是否充足,都會被 掉。虛引用 用phantomreference來標記,虛引用需要有乙個與之關聯的引用佇列...