美文网首页
将方法中的对象设置为null是否会影响垃圾回收

将方法中的对象设置为null是否会影响垃圾回收

作者: 半路和尚怎么出家 | 来源:发表于2019-11-15 16:34 被阅读0次

    这个问题困扰了我挺久的,网上也众说纷纭,比较流行的一种说法就是:

    要根据场景来确定,若这个方法执行非常耗时,且在方法初始就产生了一个大对象,那 么在方法执行过程中最好是在这个大对象使用完毕后就将其置为null,这样有助于垃圾
    收集器及时将其回收。

    这个说法看着确实合理,但是网上也有其他不同的声音,所以我想找一个相对靠谱的解答。最后在stackoverflow上看到一篇高赞回答,且被多个类似问题引用,我个人觉得比较靠谱,所以在此做个记录。

    答案地址:(https://stackoverflow.com/questions/850878/does-setting-java-objects-to-null-do-anything-anymore?answertab=active#tab-top

    答案截图

    关键在最后一句话,大致意思是:对于现代java虚拟机来说,这样的建议(在方法中讲对象设置为null)已经不再适用,JIT编译器能知道一个本地对象何时不再被使用。

    总结起来就是说,没有必要显示的将不再使用的对象设置为null。

    另外,答案下方还有补充回答,既针对线程池中线程持有对象而不释放时的问题:


    自行翻译哈

    相关文章

      网友评论

          本文标题:将方法中的对象设置为null是否会影响垃圾回收

          本文链接:https://www.haomeiwen.com/subject/ihssictx.html