Java 什么时候使用静态变量更好?

Java 什么时候使用静态变量更好?,java,final,static-variables,Java,Final,Static Variables,我想知道为什么有时我会看到带有静态变量的代码?什么时候使用静态变量而不是“正常”变量更好?如果它的值没有从一个距离变为另一个距离,那么使用final变量不是更好吗 使用静态变量的要点与最终变量不同 无法修改最终声明的变量(静态或非静态)。它们通常用作“参考值”或常量 因此,静态变量(和方法)需要作为“共享内容”。例如,假设办公室里的每个人都喜欢喝咖啡。每个人都带着自己的咖啡机,我们会更好吗?还是我们最好为整个办公室共用一台这样的机器 显然,您希望选择共享选项。在编程习惯用法中,这将转化为在Off

我想知道为什么有时我会看到带有静态变量的代码?什么时候使用静态变量而不是“正常”变量更好?如果它的值没有从一个距离变为另一个距离,那么使用final变量不是更好吗

使用静态变量的要点与最终变量不同

无法修改最终声明的变量(静态或非静态)。它们通常用作“参考值”或常量

因此,静态变量(和方法)需要作为“共享内容”。例如,假设办公室里的每个人都喜欢喝咖啡。每个人都带着自己的咖啡机,我们会更好吗?还是我们最好为整个办公室共用一台这样的机器

显然,您希望选择共享选项。在编程习惯用法中,这将转化为在
Office
类中有一个
static
变量,表示唯一的
CoffeeMachine


离题,但您肯定不想让这台咖啡机成为最终版。如果有人把它弄坏了怎么办?您需要替换它,从而更改变量

当只需要变量的一个副本时,使用静态变量。因此,如果您在方法中声明变量,那么这种变量就没有任何用处,它只会成为函数的局部变量

声明为静态的变量通常在类的所有实例中共享。

静态意味着该变量在该对象的所有实例中都是相同的

主要示例是对象计数器

class foo{

   private static int count = 0;

   public foo()
   {
      count ++;
   }

   public static getCountOfObj()
   {
      return count; 
   }
}

因此,您可以在所有foo对象上编辑它。

我假定您指的是静态字段

静态
字段与类关联,而实例字段与对象关联(也称为类实例)

如果某个字段标记为
final
(适用于实例字段和静态字段),则不能重新分配该字段


所以每个人都有自己不同的角色。

这是基于观点的,你不这么认为吗?当你在班级层面上有一些你需要的价值观时。例如,如果您有一些静态方法,那么您的值也需要是静态的。请不要使用对Wikipedia的引用好的,我将其删除:)