当前位置: 首页 > 面试题库 >

变量= null是否将其设置为垃圾回收

赵雪峰
2023-03-14
问题内容

帮助我与同事解决争执:在Java中将变量或集合设置为null是否有助于垃圾回收并减少内存使用?如果我有一个运行时间较长的程序,并且每个函数都可能被迭代调用(可能数千次):在将值返回给父函数之前将其中的所有变量设置为null是否有助于减少堆大小/内存使用量?


问题答案:

那是旧的表演传奇。在1.0天之内确实如此,但是对编译器和JVM进行了改进以消除这种需求(如果有的话)。如果您感兴趣,这篇出色的IBM文章将详细介绍:Java理论和实践:垃圾回收和性能



 类似资料:
  • 问题内容: 我是一名进入Java世界的C ++程序员。而且我不能摆脱必须让Java垃圾收集器进行清理的不良感觉。 例如,此代码在Java中的行为如何? 当myFunction()退出时,是否将删除局部变量对象? 我是否必须在退出之前将object设置为null,否则它将超出范围并被GC删除?或者,在最坏的情况下,它会像在C ++中那样泄漏吗? 问题答案: 不再使用后 ,将 在某个时候 将其收集 为

  • 问题内容: 在Java中分配未使用的对象引用是否可以以任何可衡量的方式改善垃圾回收过程? 我在Java(和C#)方面的经验告诉我,尝试使虚拟机或JIT编译器胜过智能通常是反直观的,但是我看到同事使用此方法,我很好奇这是否是一个好的选择或其中一种巫术编程迷信? 问题答案: 通常没有。 但是像所有事物一样:这取决于。如今,Java中的GC非常好,应在无法访问所有内容后不久对其进行清理。这只是在为局部变

  • 如果我这样做会发生什么: 它是从内存中删除对象,还是只清除引用? 更正式地说,考虑守则: 为什么仍然不是?它不应该被从记忆中删除吗?

  • 垃圾回收 我们对生产中花了很多时间来调整垃圾回收。垃圾回收的关注点与Java大致相似,尽管一些惯用的Scala代码比起惯用的Java代码会容易产生更多(短暂的)垃圾——函数式风格的副产品。Hotspot的分代垃圾收集通常使这不成问题,因为短暂的(short-lived)垃圾在大多情形下会被有效的释放掉。 在谈GC调优话题前,先看看这个Attila的报告,它阐述了我们在GC方面的一些经验。 Scal

  • 对于开发者来说,JavaScript 的内存管理是自动的、无形的。我们创建的原始值、对象、函数……这一切都会占用内存。 当我们不再需要某个东西时会发生什么?JavaScript 引擎如何发现它并清理它? 可达性(Reachability) JavaScript 中主要的内存管理概念是 可达性。 简而言之,“可达”值是那些以某种方式可访问或可用的值。它们一定是存储在内存中的。 这里列出固有的可达值的

  • 垃圾收集,引用计数,显式分配 和所有的现代语言一样,OCaml提供垃圾收集器,所以你不用像C/C++一样显式地分配和释放内存。 JWZ在他的文章 "Java sucks" rant(Java蛋疼(怒)!): 第一个好家伙是Java没有 free()。其他的都没有所谓了。这几乎掩盖了所有的缺点,不管有多糟糕, 这个有点让后续文档基本都没有意义了,但是...(译注:但是啥大家自己看吧) OCaml的垃