Java的內存回收——Java引用的種類

1、Java內存管理包括內存分配(創建Java對象時)和內存回收兩個方面(回收Java對象時)。

2、對於JVM的垃圾回收機制來說,是否回收一個對象的標準在於:是否還有引用變量引用該變量?只要有引用變量引用該對象,垃圾回收機制就不會回收它。

3、Java語言對對象的引用有如下4種

     強引用;軟引用;弱引用;虛引用;

強引用是Java程序中最常見的引用方式,程序創建一個對象,並把這個對象賦給一個引用變量這個引用變量就是強引用。由於JVM肯定不會回收強引用所引用的Java對象,因此強引用是造成內存泄漏的主要原因之一。

軟引用需要通過SoftReference類來實現,當一個對象只具有軟引用時,它有可能被垃圾回收機制回收。對於只有軟引用的對象而言,當系統內存空間足夠時,它不會被系統回收,程序也可使用該對象,當對象內存空間不足時,系統將會回收它。

弱引用與軟引用有點相似,區別在於弱引用所引用對象的生存週期更短。通過WeakReference類實現。對於只有弱引用的對象而言,當系統垃圾回收機制運行時,不管系統內存是否足夠,總會回收該對象所佔用的內存。當然,並不是說當一個對象只有弱引用時,它就會立即被回收——正如那些失去引用的對象一樣,必須等到垃圾回收機制運行時纔會被回收。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章