java中’static int’和’int’之间的区别

在java中我们何时何地使用’static int’,它与’int’有什么不同?

看一下: 了解实例和类成员

当从同一个类蓝图创建许多对象时,它们每个都有自己不同的instance variables副本。 (……)

有时,您希望拥有所有对象共有的变量。 这是通过静态修改器完成的。 在声明中具有static修饰符的字段称为静态字段或class variables

好。

它在声明成员变量时使用,而static指的是您是否需要给定类的实例来访问它。

通常, static用于常量或“辅助”函数或变量。 如果你有太多,如果你最终在一个类中组合静态和非静态变量,它最终会暗示不好的设计(尽管不是所有的时间)。

如果变量是static ,则它的值在所有用法之间共享(即在对象的所有实例之间)。 也就是说,如果您更改它,所有其他访问将看到更改。

非静态变量将为每个实例具有唯一值(因为它只能实例访问)。

static意味着它不是特定于实例的。 它属于这个class 。 通常它与最终结果一致。

 public static final int MAX = 10000; // Defined in MyClass // Somewhere else you could do int max = MyClass.MAX; // notice no instance of MyClass needed. 

编辑:它不必是最终的,只要一个人小心,非最终变量就可以了。

修饰符static将变量定义为类变量,这意味着只有一个变量。 没有它,变量是一个可实例化的变量,因此每个Object都存在这个变量。

例如:

 class Test { static int i; int j; } class Test 2 { public static void main(String args[]) { Test test1 = new Test(); Test test2 = new Test(); test1.i = 1; test1.j = 2; test2.i = 3; test2.j = 4; System.out.println("test1.i: "+test1.i); System.out.println("test1.j: "+test1.j); System.out.println("test2.i: "+test2.i); System.out.println("test2.j: "+test2.j); } } 

如果创建Test类的2个对象,则两个对象将“共享” i变量。 但是每个对象都有自己的j变量。

在上面的例子中,输出将是

 test1.i: 3 test1.j: 2 test2.i: 3 test2.j: 4 

您可以在The Java Tutorials – Variables中阅读更多相关信息

static int:每个应用程序一个变量无需对象即可访问。

int:每个对象一个变量没有对象就无法访问。

在类中使用’int’意味着在类的每个实例上都存在整数字段。 使用’static int’表示类上存在整数字段(而不是在类的每个实例上)

static int ,可以直接访问而无需使用对象。 int ,不使用对象无法直接访问。