请告诉我b / w低于三个声明的区别 -
private static int i=10;
private static final int j=10;
private final int k = 10;
答案 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"的方式。所以差异如下:
答案 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也用于将方法定义为类方法。类方法绑定到类而不是特定实例,并且只能在类字段上操作。 (声明为另一个类或接口的静态成员的类和接口实际上是顶级类,而不是内部类。)