java引用類型

java引用漫談

jdk1.2以前,如果reference類型的數據中存儲的數值代表的是另外一塊內存的起始地址,就稱這塊內存代表着一個引用。這種情況下,一個對象只有被引用或沒有被引用兩種狀態。

jdk1.2以後,Java對引用概念進行了擴充,將引用分爲強引用、軟引用、弱引用、虛引用四種。強度依次減弱。

引用的細分使得Java對內存回收的控制也更精細。

強引用

Object obj = new Object(); 只要引用存在,gc就不會回收被引用的對象。

軟引用

用來描述還有用但不必需的對象。在系統將要發生內存溢出之前,列入回收範圍進行回收。但如果內存足夠,就不會回收

如果這次回收還沒有足夠的內存,纔會拋出內存溢出的異常。

弱引用

描述非必需對象,但比弱引用更弱。

只能生存到下一次垃圾收集發生之前。無論內存是否足夠,都會回收。

虛引用

又名幽靈引用或幻影引用,是最弱的一種引用關係。一個對象是否有虛引用存在,對其生存時間沒有任何影響。

爲一個對象設置虛引用的唯一目的就是能在對象被gc回收前收到一個系統通知。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章