Java 对象不使用时,为什么要赋值为 null?

Java 对象不使用时,为什么要赋值为 null?

总结:
jvm垃圾回收会把其判断不可存活的对象进行回收。
jvm是通过可达性分析来进行判断对象是否可以回收。
而可达性分析是把GC Roots作为根部,一层一层往下找,能够找到的对象则可存活,否则可进行回收。
而能作为GC Roots的其中之一就是虚拟机栈引用的对象。
而对象由于没有赋值为null,所以还被栈所引用,因此jvm会认为该对象还存活,不可回收。
因此,当对象不在使用时,可以赋值为null,这样就不会被栈所引用,才会被jvm回收。

猜你喜欢

转载自blog.csdn.net/weixin_43871678/article/details/114132078