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

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

王林
發布: 2020-04-10 15:50:45
轉載
2757 人瀏覽過

關於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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板