對象引用
在Java中記憶體關系有兩部分内容:記憶體配置設定、垃圾回收。
從JDK1.2開始就提出四種引用關系:強引用、軟引用、弱引用、虛引用。許多時候可能不需要編寫代碼,但對于這些概念必須牢記。
(1)強引用:對象将一直被引用,即使出現了“OutOfMemeryError”錯誤資訊;

(2)軟引用:對象将被長時間儲存,一直到出現記憶體不足的情況才會被回收,這樣的操作很多時候都會用于緩存的開發上,例如在MyBatis裡就提供有軟引用模式的緩存模式;
如果這個時候出現了記憶體不足的問題,才會進行回收,也就是說對象會盡可能儲存的時間長一些。
(3)弱引用:一旦有了垃圾收集操作之後就會進行回收;
(4)虛引用:也叫幽靈引用,這種操作傳回的内容永遠都是null,就是不引用;
在對象垃圾收集前一定會調用finalize()方法,但如果finalize()占着它的強引用的對象不放,就會出現一個邏輯上的死鎖,這個時候可以通過虛引用來解決。
更多專業知識,面試技巧就在阿裡雲開發者社群,持續更新中……
感謝浏覽~
本内容來源于
阿裡雲大學-Java面試技巧