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