相关疑难解决方法(0)

将Java对象设置为null是否可以执行任何操作?

我正在浏览一些旧书,并找到了Peter Hagger的"Practical Java".在性能部分,建议将对象引用设置为null不再需要时.

在Java中,设置对象引用是为了null提高性能还是垃圾回收效率?如果是这样,在什么情况下这是一个问题?容器类?对象组成?匿名内部课程?

我经常在代码中看到这个.这是现在过时的编程建议还是仍然有用?

java performance garbage-collection

108
推荐指数
4
解决办法
6万
查看次数

它是否有助于GC在Java中使null变为null

myLocalVar = null;在离开方法之前,我被"强制"在finally子句中添加语句.原因是帮助GC.有人告诉我,下次服务器崩溃时我会收到短信,所以我最好这样做:-).

我认为这是毫无意义的,因为myLocalVar的范围是方法,并且一旦方法退出就会"丢失".额外的归零只会污染代码,否则无害.

我的问题是,这个关于帮助GC的神话来自哪里?(我被称为"Java记忆书")你知道"权威"的任何文章更深入地解释它吗?有可能这不是一个神话,但真的有所帮助吗?如果是这样,怎么样?可能会使局部变量归零会造成任何伤害?

为了澄清,方法看起来像这样:

void method() {
  MyClass myLocalVar = null;
  try {
    myLocalVar = get reference to object;
    ... do more here ...
  } finally {
    if (myLocalVar != null) {
      myLocalVar.close(); // it is resource which we should close
    }

    myLocalVar = null; // THIS IS THE LINE I AM TALKING ABOUT
  }
}
Run Code Online (Sandbox Code Playgroud)

java variables null garbage-collection local

40
推荐指数
6
解决办法
9773
查看次数

显式归零

在什么情况下java中显式nulling有用.它是否以任何方式通过使对象无法访问或某些东西来帮助垃圾收集器?它被认为是一种好习惯吗?

java

9
推荐指数
4
解决办法
2021
查看次数

标签 统计

java ×3

garbage-collection ×2

local ×1

null ×1

performance ×1

variables ×1