您好,登錄后才能下訂單哦!
這篇文章主要介紹了java中軟引用的用法,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
在內存充足的時候,放置一些數據還沒有影響。一旦內存不夠再去一個個的清理,就會比較麻煩。我們可以在設置代碼的時候就使用軟引用,當內存不足時就會自動清理掉,放置一些不是很重要的數據非常好用。接下來我們就軟引用的概念、應用場景、實例分享給大家,具體內容往下看:
1.概念
軟引用是用來描述一些還有用,但非必須的對象。只被軟引用關聯著的對象,在系統將要發生內存溢出異常前,會把這些對象列進回收范圍之中進行第二次回收,如果這次回收還沒有足夠的內存,才會拋出內存溢出異常
2.應用場景
軟引用通常用來實現內存敏感的緩存。如果還有空閑內存,就可以暫時保留緩存,當內存不足時清理掉,這樣就保證了使用緩存的同時,不會耗盡內存。
3.實例
byte[] data = new byte[1*1024*1024]; ReferenceQueue<Object> referenceQueue = new ReferenceQueue<>(); SoftReference<byte[]> softReference = new SoftReference<>(data,referenceQueue); data = null; System.out.println("before:"+softReference.get()); try { for (int i = 0; i < 10; i++) { byte[] temp = new byte[3*1024*1024]; System.out.println("processing:"+softReference.get()); } } catch (Throwable t) { System.out.println("after:"+softReference.get()); t.printStackTrace(); } while(referenceQueue.poll()!=null){ System.out.println("self:"+softReference); softReference.clear(); softReference = null; System.out.println("last:"+softReference); } VM options:-Xms5m -Xmx5m -XX:+PrintGC
感謝你能夠認真閱讀完這篇文章,希望小編分享的“java中軟引用的用法”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。