热门问题
时间线
聊天
视角
虛引用
JAVA语言的一种引用方式 来自维基百科,自由的百科全书
Remove ads
虛引用 是Java語言中的一種引用方式,在虛引用中,內存可以被回收。 虛引用是 Java語言中提供的非強引用的一種;其他兩種分別是弱引用 和 軟引用。[1] 虛引用是Java語言中最弱的一種引用。
在Java 8和早期版本中,finalize後的對象需要對應的軟應用被回收後才可以被回收。 Java 9[2] 中允許finalize後的引用對象被立即回收。
用例
虛引用的應用場景,主要是少量的技術上的使用,[3] 主要用來跟蹤對象被垃圾回收器回收的活動。首先,它可以用來代替 finalize
方法,保證對象在finalize時不會復活(resurrect)。 這允許對象在一個周期內完成垃圾回收,而不需要等待下一個垃圾回收周期以確保它沒有復活。 第二個用途是來檢測對象被回收的具體時間(通過與 ReferenceQueue
對象配合使用),確保其內存空間可用,例如延遲給新的對象分配內存(例如很大的圖片),直到以前的內存被釋放。
參見
- Ephemeron
- 弱引用
- 軟引用
- 循環引用
參考文獻
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads