Java常量需要注意的地方
1、习惯上,常量名全部使用大写。Myeclipse,把选中变量全部修改为大写的快捷键是ctrl+y,全部修改小写的快捷键是ctrl+x。
----------------------------
public class Test {
public static void main(String[] args) {
final double HEIGHT = 1.75; //
System.out.println();
}
}

2、常量赋值之后不能再次赋值。
----------------------------
public class Test {
public static void main(String[] args) {
final double HEIGHT = 1.75;
HEIGHT = 9.8;
System.out.println(HEIGHT);
}
}

3、编译报错。
----------------------------
f:\JavaStudy>javac Test.java
Test.java:4: 无法为最终变量 HEIGHT 指定值
HEIGHT = 9.8;
^
1 错误

4、作为类属性,常量因为其不可修改的特性,通常作为static常量,不属于特定对象,而是类级别的。其次,static final修饰的常量,通常需要被其他类引用,所以其修饰通常是这样的,public static final。
----------------------------
public class Test {
public static final double HEIGHT = 1.75;
public static void main(String[] args) {
System.out.println(HEIGHT);
}
}
class Test2 {
public static void main(String[] args) {
System.out.println(Test.HEIGHT);
}
}

5、线程内部访问外部变量,该变量必须是常量。
----------------------------
public class Test {
public static void main(String[] args) {
int tmp = 2;
new Thread() {
public void run() {
System.out.println(tmp);
}
}.start();
}
}

6、编译报错。
----------------------------
f:\JavaStudy>javac Test.java
Test.java:6: 从内部类中访问局部变量 tmp;需要被声明为最终类型
System.out.println(tmp);
^
1 错误
f:\JavaStudy>

7、正确访问方式。
----------------------------
public class Test {
public static void main(String[] args) {
final int tmp = 2;
new Thread() {
public void run() {
System.out.println(tmp);
}
}.start();
}
}
