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

显式归零

郭永安
2023-03-14
问题内容

在Java的什么情况下,显式null有用。它是否通过使对象不可访问或其他方式以任何方式辅助垃圾收集器?是否认为这是一种好习惯?


问题答案:

在Java中,如果您有一个运行时间很长的方法,并且对对象的唯一引用是通过局部变量,则 可以提供
帮助。在不再需要该局部变量时(但当该方法将继续运行很长时间时)将该局部变量设置为null 可以
帮助GC。(在C#中,这很少有用,因为GC考虑了“最后可能的使用”。这种优化可能会使其在Java上使用一段时间-我不知道。)

同样,如果您有一个引用对象的成员字段,而不再需要它,则可以通过将字段设置为null来帮助GC。

但是,以我的经验,做这两种事情 实际上 几乎 没有 用,这会使代码更加混乱。 实际上
,很少有方法可以长时间运行,而将变量设置为null确实与您希望该方法实现什么无关。在不需要时这样做不是一个好习惯,如果 确实
需要,则应首先了解重构是否可以改善您的设计。(您的方法或类型可能做得太多。)

请注意,将变量设置为null完全是被动的-它不会通知垃圾收集器可以收集该对象,只是避免了垃圾收集器将引用视为保持对象下次存活的原因(GC)运行。



 类似资料:
  • 我正在编写一个简单的“proc”来计算阶乘。我想了解为什么我的函数没有返回语句就无法工作。 根据TCL文档,没有显式“return”定义的函数返回其主体中最后执行的命令的值。 当“返回”被删除时,我收到以下错误消息: 我希望如果没有显式的“return”,函数也应该返回24。

  • 校验者: @STAN,废柴0.1 翻译者: @Damon IsotonicRegression 类对数据进行非降函数拟合. 它解决了如下的问题: 最小化 服从于 其中每一个 是 strictly 正数而且每个 是任意实 数. 它生成一个由平方误差接近的不减元素组成的向量.实际上这一些元素形成 一个分段线性的函数.

  • 问题内容: 我有一个JSON模式 我要在children属性中表示的是,它是具有相同精确模式的对象数组。这是描述它的正确方法吗? 问题答案: 使用您需要参考的架构 参见此处:http : //json-schema.org/latest/json-schema-core.html#anchor30

  • 我希望有一个regex来匹配以开头的所有行,后面跟着以开头的任意数量的行。理想情况下,我希望将带有的每一行放在一个组中。 以下是我希望得到的结果: (为了缩短起见,我用了[...]。) 它实际上给了我这个: 我希望我已经说得够清楚了,你能帮我解决这个问题。请不要犹豫,询问更多的细节。

  • 问题内容: 前言 通过在日程安排中找到一些空闲时间,我要求自己提高自己的递归技能(不幸的是)。作为实践,我想通过使用递归来重新创建所有运算符,第一个是加法运算。虽然我有点卡住。 题 隐含地,我想仅通过使用递归和条件来重新创建加法运算符。尽管我完成了很大一部分代码,但由于只包含一个加法运算符,仍然存在一个问题。这是代码(可以正常运行,并且可以按预期在正,负和零输入的所有变体中添加)。我还提供了一些平

  • 综述  “寒泉自可斟,况复杂肴醴。”  本文采用编译器:jupyter  在介绍线性回归模型时,曾假设所有模拟的数据均满足线性关系,即y是x的一次函数,然而现实中极少有这么理想的数据,这是我们就需要考虑更一般化的方法了,其中多项式回归为我们提供了一些思路。 如上图,虽然y是关于x的二次方程,但实际上如果把x平方与x分别看成两个特征就变成我们之前所介绍的线性回归问题。 即,相当于我们对原来的数据增加