首頁  >  文章  >  Java  >  關於java中的強引用與弱引用的介紹

關於java中的強引用與弱引用的介紹

王林
王林轉載
2020-04-10 15:50:452714瀏覽

關於java中的強引用與弱引用的介紹

一、強引用

我們平時new了一個物件就是強引用,例如

Object obj = new Object();

即使在記憶體不足的情況下,JVM寧願拋出OutOfMemory錯誤也不會回收這種物件。

(推薦影片教學:java影片教學

二、軟引用

如果一個物件只有軟引用,則內存空間足夠,垃圾回收器就不會回收它;如果記憶體空間不足了,就會回收這些物件的記憶體。

SoftReference<String> softRef=new SoftReference<String>(str);     // 软引用

用途: 

軟體引用在實際中有重要的應用,例如瀏覽器的後退按鈕。按後退時,這個後退時顯示的網頁內容是重新進行請求還是從快取中取出呢?這就要看具體的實現策略了。

(1)如果一個網頁在瀏覽結束時就進行內容的回收,則按後退查看前面瀏覽過的頁面時,需要重新建構。

(2)如果將瀏覽過的網頁儲存到記憶體中會造成記憶體的大量浪費,甚至會造成記憶體溢位。

如下程式碼:

Browser prev = new Browser();               // 获取页面进行浏览
SoftReference sr = new SoftReference(prev); // 浏览完毕后置为软引用        
if(sr.get()!=null){ 
    rev = (Browser) sr.get();           // 还没有被回收器回收,直接获取
}else{
    prev = new Browser();               // 由于内存吃紧,所以对软引用的对象回收了
    sr = new SoftReference(prev);       // 重新构建
}

相關教學推薦:java快速入門

#

以上是關於java中的強引用與弱引用的介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除