Java對象new,到賦null過程的總結


 

Test Exam=new Test(); Exam=null;

第一個“=”將new Test()所創建的對象,引用給Exam。

Exam是對象的引用而不是對象本身,Exam=null只是解除了Exam與原對象的引用關系,而並不沒有釋放原對象。所以,在這個時候,內存並不會減少。

這時,根據HotSpot可達分析性算法,該對象就成為了“垃圾”占用着內存空間,需要通過垃圾收集器來回收這些空間。由於Java的垃圾回收機制,Java不需要像C或C++那樣通過程序代碼來顯示地釋放空間,而會由JVM自行回收,這部分空間何時回收是不可預知的。

 


作者:哇魚 鏈接:https://www.zhihu.com/question/21356272/answer/17982196 來源:知乎 著作權歸作者所有,轉載請聯系作者獲得授權。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM