1. 程式人生 > >Java中的強引用和弱引用

Java中的強引用和弱引用

style 關系 term handle ren soft obj jsb false

旭日Follow_24 的CSDN 博客 ,全文地址請點擊:

https://blog.csdn.net/xuri24/article/details/81114944

一、強引用

如下是強引用的經典形式:

object o = new object();

特點:

(1)創建一個對象,並將對這個對象的引用賦值給o,這樣就是強引用了

(2)當內存空間不足的時候,虛擬機寧願拋出錯誤,也不願意回收內存

(3)可以使用 o = null;的方式來弱化引用

(4)如果一個對象,沒有一個引用來指向他,那麽這個引用可以被垃圾回收

二、軟引用

softReference<String> softRef = new softReference<String>(str);

特點:

(1)軟引用可以實現內存敏感的高速緩存

(2)當內存空間不足的時候,就回收這些對象

(3)hold on until you can‘t

三、弱引用

WeakReference<String> weakRef = new WeakReference<String>(str);

(1)弱引用和軟引用的區別在於其擁有更短的生命周期

(2)不管當前的內存空間是否足夠,都會回收他的內存

(3)偶爾才使用到的對象,我們使用弱引用的機制

四、總結

他們之間的關系:SoftReference > WeakReference > PhantomReference

如下是幾種引用的回收和生命周期圖

技術分享圖片技術分享圖片?

Java中的強引用和弱引用