java中引用
? ? ? 談?wù)揓ava肯定離不開其中的垃圾回收機制,無論是通過引用計數(shù)算法判斷對象的引用數(shù)量,還是通過根搜索算法判斷對象的引用鏈是否可達,判斷對象是否存活都與“引用”有關(guān)。
? ? ?在JDK1.2之前,Java中引用的定義很傳統(tǒng):如果reference類型的數(shù)據(jù)中存儲的數(shù)值代表的是另一塊內(nèi)存的起始地址,就稱這塊內(nèi)存代表著一個引用。這種定義很純粹,但是太過狹隘,一個對象在這種定義下只有被引用和沒有被引用的兩種狀態(tài),對于如何描述一個“食之無味,棄之可惜”的對象就顯得無能為力了。希望能夠描述一個這樣的對象:當內(nèi)存空間還足夠時,則保留在內(nèi)存中;如果內(nèi)存在垃圾收集后還是很緊張,則可以拋棄這些對象。
? ? ?在JDK1.2之后,Java對引用的概念進行了擴充,將引用分為強引用(Strong Reference)、軟引用(Soft Reference)、弱引用(Weak Reference)、虛引用(Phantom Reference)四種,這四種引用強度依次逐漸減弱。
轉(zhuǎn)載于:https://www.cnblogs.com/leilei-lily/p/4727126.html
總結(jié)
- 上一篇: Problem J
- 下一篇: 0909 粗浅的认识编译原理