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

最佳实践:Java静态非最终变量

双志强
2023-03-14
问题内容

在Java中,何时应使用静态非最终变量?

例如

private static int MY_VAR = 0;

显然,这里我们不是在谈论常量。

public static final int MY_CONSTANT = 1;

根据我的经验,我经常在使用单例时对它们进行辩护,但后来我最终需要拥有多个实例,这使我感到非常头痛和重构。

似乎很少在实践中使用它们。你怎么看?


问题答案:

统计信息收集可以使用非最终变量,例如,计算创建的实例数。另一方面,对于这种情况,您可能还是要使用AtomicLongetc,这时可能是最终的。另外,如果您要收集多个统计信息,则可以得到一个Statistics类以及对该类实例的最终引用。

具有(合理地)非最终静态变量当然很少见。



 类似资料:
  • 问题内容: 但是那我该如何解决呢? 我的应用程序使用几种类型的文件,我想分配一些静态属性,例如对该文件类型的描述(例如“数据文件”,另一个是“配置文件”,等等)。显然,我会将其放入静态String中,以便无需实例文件即可访问描述(对GUI fi有用)。另一方面,显然所有文件类型都应具有一些通用方法,例如,显然我想从通用超类继承。 在超类中当然是抽象的。 尝试使用超类和接口的组合,但是存在类似的问题

  • 问题内容: 将变量声明为的区别是什么 要么 如果我只希望变量是局部的,并且是常量(以后不能更改)? 谢谢 问题答案: 仅仅具有预期的效果。 声明static使其成为一个类变量,使其可以使用类名进行访问

  • 这里有些给使用和编写 Ansible playbook 的贴士. 你能在我们的 ansible-example repository.找到展示这些最佳实践的 playbook 样例.(注意: 这些示例用的也许不是最新版的中所有特性,但它们仍旧是极佳的参考.) Topics 最佳实践 接下来的章节将向你展示一种组织 playbook 内容方式. 你对 Ansible 的使用应该符合你的需求而不是我们

  • 处理后台任务与常规调用方法有很大的不同。本指南旨在帮助让您的后台任务平稳有效地运行。本文基于 这篇博客文章。 使任务参数小而简单 方法(任务)在调用之前会被序列化。使用 TypeConverter 类将参数转换为 JSON 字符串。如果您有复杂的实体和 / 或大对象; 包括数组,最好将它们放入数据库,然后只将其标识 (id) 传递给后台任务。 错误例子: public void Method(En

  • VR设计 VR设计不同于平面体验设计。作为一种新的媒介,有新的最佳实践需要遵循,特别是保持用户的舒适性和存在性。这在如下指南中已经写得很透彻了: Oculus VR最佳实践 Leap Motion VR最佳实践指南 一些值得注意的事情: 公共的金科玉律是永远不要意外地把相机控制权从用户手中剥夺。 单位(比如对于位置)应该考虑使用米(m)。这是因为WebVR API以米为单位返回姿势数据,进而传送给

  • 本章文档将阐述一些使用herosphp开发一些常用模块的一些比较好的实践。 未完待续。。。