1、习铲邑诱匮惯上,常量名全部使用大写。Myeclipse,把选中变量全部修改为大写的快捷键是ctrl+y,全部修改小写的快捷键是ctrl+x。----------------------------pu芟鲠阻缒blic 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.javaTest.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.javaTest.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(); }}