美文网首页
将方法中的对象设置为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是否会影响垃圾回收

    这个问题困扰了我挺久的,网上也众说纷纭,比较流行的一种说法就是: 要根据场景来确定,若这个方法执行非常耗时,且在方...

  • 《深入理解jvm》读书笔记之——判断对象存活的方法

    1、对象的状态 对于jvm中的垃圾收集器中,判断对象是否可以被回收,哪些对象是否需要存活是有以下的方法的。 1.1...

  • Java 垃圾回收机制

    垃圾回收机制 在进行垃圾回收之前,我们需要先判断一个对象是否存活,判断对象是否存活采用了两种方法: 引用计数法 给...

  • JVM之判断对象的存活状态

    jvm垃圾收集器在进行垃圾回收时,会判断对象是否存活状态,只有死去的对象才会被回收。那么怎么判断对象的存活状态呢?...

  • 学习JVM必不可少的知识

    1.Java垃圾回收机制 对象被判断为垃圾的标准:没有被其他对象引用 2.判断对象是否可被回收 (1)引用计数算法...

  • 学习JVM必不可少的知识

    1.Java垃圾回收机制 对象被判断为垃圾的标准:没有被其他对象引用 2.判断对象是否可被回收 (1)引用计数算法...

  • 垃圾收集与内存分配策略

    哪些内存需要回收 什么时候回收 如何回收 Java堆和方法区的垃圾回收 对象是否存活 引用计数算法 给对象添加一个...

  • GC自我盘问

    GC收集 收集的意义:回收已死的对象,垃圾收集是否限定在堆上?方法区的空间回收是否属于GC的范围虚拟机栈、本地方法...

  • Python垃圾回收机制

    垃圾回收机制: Python中的垃圾回收算法是采用引用计数, 当一个对象的引用计数为0时, Python的垃圾回收...

  • Java内存分配与垃圾回收

    垃圾回收 什么需要垃圾回收 栈:不需要,会随着线程的结束而消亡。堆:重点关注,凡是共享的对象,理应需要回收方法区/...

网友评论

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

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