简单介绍强引用,软引用,弱引用,虚引用
StrongReference
強引用是使用最普遍的引用,如果一個對象具有強引用,那么垃圾回收器絕不會回收它,如:
Object obj = new Object(); // 強引用
當內存空間不足,jvm寧愿拋出OutOfMemoryError錯誤,也不靠隨意回收具有強引用的對象來解決內存不足的問題。如果不使用時,要通過如下方式弱化引用。Eg:
?obj = null; // 幫助垃圾回收器回收此對象
?
-------------------------------------------------------------------------------------------------------------------------------
SoftReference
如果一個對象只具有軟引用,則內存空間組夠,垃圾回收期就不會回收它;如果內存空間不足了,就會回收這些對象的內存。只要垃圾回收器沒有回收它,該對象就可以被被程序使用。
軟應用可用來實現內存敏感的高速緩存。
String abc = new String(“abc”); //Strong
SoftReference<String> softRef = new SoftReference<String>(str); //Soft
?
-------------------------------------------------------------------------------------------------------------------------------
WeakReference
弱引用于軟應用的區別在于:只有弱引用的對象擁有更短暫的生命周期。在垃圾回收器線程掃描它所管轄的內存區域的過程中,一旦發現了只有弱引用的對象,不管當前內存空間足夠與否,都會回收它的內存。不過,由于垃圾回收期是一個優先級很低的線程,因此不一定很快發現那些只具有弱應用的對象。
?
-------------------------------------------------------------------------------------------------------------------------------
?
PhantomReference
虛引用顧名思義,就是形同虛設,與其他幾種引用都不同,虛引用并不會決定對象的生命周期。如果一個對象僅持有虛引用,那么它就和沒有任何引用一樣,在任何時候都可能被垃圾回收器回收。
?
?
總結:
Java四種引用的級別由高到低依次為:
強引用 > 軟引用 > 弱引用 > 虛引用
?
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的简单介绍强引用,软引用,弱引用,虚引用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring入门案例plus
- 下一篇: mybatis实现反向工程