1.強引用:如果一個對象具有強引用龙优,則該對象不會被垃圾回收器回收,即使內(nèi)存空間不足怎顾,JVM也不會回收該對象,而是拋出OutOfMemoryError異常教翩,使程序異常中止杆勇。如果要中斷強引用與某個對象的關(guān)聯(lián),可以顯示的將該引用置為null饱亿,則JVM會在合適的時間回收該對象蚜退。
Object obj = new Object(); // 強引用
obj = null; // 取消強引用
2.軟引用:如果一個對象具有軟引用,則只有在內(nèi)存空間不足的時候彪笼,JVM才會回收它钻注。
SoftReference<String> softName = new SoftReference<>("張三");
3.弱引用:若一個對象具有弱引用,則不管內(nèi)存空間足不足夠配猫,只要垃圾回收器發(fā)現(xiàn)了該對象幅恋,就會將其回收。
WeakReference<String> weakName = new WeakReference<String>("hello");
4.虛引用:顧名思義泵肄,就是形同虛設(shè)捆交,如果一個對象僅持有虛引用,那么它相當于沒有引用腐巢,在任何時候都可能被垃圾回收器回收品追。
參考:
https://www.cnblogs.com/pascall/p/10281775.html
http://www.360doc.com/content/19/0409/10/25472797_827404356.shtml