请告诉我b / w低于三个声明的差异 -

时间:2014-05-13 22:39:25

标签: static final

请告诉我b / w低于三个声明的区别 -

  1. private static int i=10;
  2. private static final int j=10;
  3. private final int k = 10;

3 个答案:

答案 0 :(得分:2)

C'周一只需阅读每个关键字的含义:

静态意味着"与一个类而不是实例相关联"

final更复杂 - 依赖于上下文。

http://javamex.com/tutorials/synchronization_final.shtml

private static int i=10;  // i is associated with class; mutable
private static final int j=10; // j is associated with class; immutable
private final int k = 10; // k is associated with instances; immutable

答案 1 :(得分:1)

有时候想到"静态"以类似于" global"的方式。所以差异如下:

  1. private static int i = 10; //这意味着类的所有实例将共享相同的变量i,无论其当前值是什么。例如,事物A和事物B是类Thing的实例。如果A修改变量i,那么它也将被修改为B.
  2. private static final int j = 10; //这意味着类的所有实例将像j一样共享j的相同值。此外,您无法更改j的值。这是一个不变的,不变的。
  3. private final int k = 10; //这意味着它是一个常数。

答案 2 :(得分:1)

简答:

最后:你无法在声明后更改var。

静态:变量与不具有实例的类

相关联
private static int i=10;        // belongs to the class
private static final int j=10;  // belongs to the class and it's unchangeable 
private final int k = 10;       // it's unchangeable 

长答案:

最终:定义一个无法更改或以后派生的实体。更具体地说:最终类不能被子类化,最终方法不能被覆盖,并且最终变量最多可以作为左手表达式出现一次。最后一课中的所有方法都是隐式最终的。

静态用于将字段,方法或内部类声明为类字段。无论该类存在多少个实例,类都会保留一个类字段副本。 static也用于将方法定义为类方法。类方法绑定到类而不是特定实例,并且只能在类字段上操作。 (声明为另一个类或接口的静态成员的类和接口实际上是顶级类,而不是内部类。)