它是否有助于GC将Java中的局部变量设为空

彼得·史蒂布兰妮(PeterŠtibraný):

我被迫myLocalVar = null;在离开方法之前语句添加到finally子句中。原因是要帮助GC。有人告诉我,当服务器下次崩溃时,我会在晚上收到SMS,所以我最好做一遍:-)。

我认为这毫无意义,因为myLocalVar的作用域是方法,一旦方法退出,它就会“丢失”。额外的null只会污染代码,但否则无害。

我的问题是,有关帮助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
  }
}
比尔·米歇尔(Bill Michell):

Sun的旧文档是Java Platform Performance(可悲的是现在链接断开了,我找不到一个新的文档),其中描述了一种情况,即使一个超出范围的局部变量无效实际上会产生影响在GC上。

但是,本文提到了Java的一个很旧的版本。正如该问题中提到的(其中也包含本文中描述的问题的前提),这不再影响当前的JVM实现。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Javascript

JavaScript数组中的负索引是否应有助于数组长度?

来自分类Java

Java Finals是否有助于编译器创建更有效的字节码?

来自分类Java

静态成员是否有助于提高内存效率?

来自分类Java

Java中是否有线程组局部变量?

来自分类Java

Java InputStream是否有助于或损害大文件的内存使用?

来自分类Dev

关闭选项卡/窗口之前删除变量是否有助于释放内存?

来自分类Dev

使用CSRF表单令牌是否有助于预防垃圾邮件?

来自分类Dev

两次定义相同的变量/有助于理解

来自分类Dev

当我传递节点对象内部“顶部”的Node变量时?是否有助于指出先前的数据?

来自分类Dev

除其他好处外,关键字“ auto”是否真的有助于使C ++中的调试更轻松?

来自分类Dev

函数声明和变量声明的顶部是否有助于提高性能?

来自分类Dev

下面的逻辑是否有助于从字符串中查找子字符串的出现次数?

来自分类Dev

S3中的对象锁定是否有助于防止对象被覆盖?

来自分类Dev

PYMC3混合物模型:有助于理解多变量模型

来自分类Dev

索引是否有助于sql选择排序性能?

来自分类Dev

重新生成会话ID是否有助于防止固定和/或劫持?

来自分类Dev

合并有助于SQL中聚合的值

来自分类Dev

Eclipse RCP:这是否有助于片段项目

来自分类Dev

Redis复制是否有助于负载均衡?

来自分类Dev

线程化有助于提高Java的效率吗?

来自分类Dev

硬件是否有助于减少OS X的崩溃?

来自分类Dev

TLP是否真的有助于延长电池寿命?

来自分类Dev

是否有任何数学算法有助于良好的响应式html设计?

来自分类Dev

序列化有助于将霍夫曼树存储到文件中

来自分类Dev

java - 如何实现有助于在java中拖动圆圈的鼠标侦听器?

来自分类Dev

“ident_key = null 上的左连接表”是否有助于查询速度?

来自分类Dev

在多个容器中存储数据时,Java 的参考系统是否有助于节省内存?

来自分类Dev

嵌套循环是否有助于解析结果

来自分类Dev

Java:clear() 大尺寸列表是否有助于快速垃圾收集?

Related 相关文章

  1. 1

    JavaScript数组中的负索引是否应有助于数组长度?

  2. 2

    Java Finals是否有助于编译器创建更有效的字节码?

  3. 3

    静态成员是否有助于提高内存效率?

  4. 4

    Java中是否有线程组局部变量?

  5. 5

    Java InputStream是否有助于或损害大文件的内存使用?

  6. 6

    关闭选项卡/窗口之前删除变量是否有助于释放内存?

  7. 7

    使用CSRF表单令牌是否有助于预防垃圾邮件?

  8. 8

    两次定义相同的变量/有助于理解

  9. 9

    当我传递节点对象内部“顶部”的Node变量时?是否有助于指出先前的数据?

  10. 10

    除其他好处外,关键字“ auto”是否真的有助于使C ++中的调试更轻松?

  11. 11

    函数声明和变量声明的顶部是否有助于提高性能?

  12. 12

    下面的逻辑是否有助于从字符串中查找子字符串的出现次数?

  13. 13

    S3中的对象锁定是否有助于防止对象被覆盖?

  14. 14

    PYMC3混合物模型:有助于理解多变量模型

  15. 15

    索引是否有助于sql选择排序性能?

  16. 16

    重新生成会话ID是否有助于防止固定和/或劫持?

  17. 17

    合并有助于SQL中聚合的值

  18. 18

    Eclipse RCP:这是否有助于片段项目

  19. 19

    Redis复制是否有助于负载均衡?

  20. 20

    线程化有助于提高Java的效率吗?

  21. 21

    硬件是否有助于减少OS X的崩溃?

  22. 22

    TLP是否真的有助于延长电池寿命?

  23. 23

    是否有任何数学算法有助于良好的响应式html设计?

  24. 24

    序列化有助于将霍夫曼树存储到文件中

  25. 25

    java - 如何实现有助于在java中拖动圆圈的鼠标侦听器?

  26. 26

    “ident_key = null 上的左连接表”是否有助于查询速度?

  27. 27

    在多个容器中存储数据时,Java 的参考系统是否有助于节省内存?

  28. 28

    嵌套循环是否有助于解析结果

  29. 29

    Java:clear() 大尺寸列表是否有助于快速垃圾收集?

热门标签

归档