无所不能的final关键字

 一,编译时常量

使用static final类似于C/C++/C#中的const。应用于基本类型,java编译器可以将该常量值代入任何可能用它的计算式中,这样可以减轻运行时的负担。

二,运行时初始化,其后不可改变的变量

分两种情况:如果是值类型,表示其值不可改变;如果是引用类型,表示其引用(指向)不可改变,但其引用的对象(状态和行为)可以改变。c#采用单独的关键字readonly指定。

三,只读参数

与第二种情况类似,在方法内部无法修改修饰为final的参数的引用指向。

四,密封类与密封方法

密封类表示该类不允许继承,密封方法表示该方法不可以被重写。c#采用单独的关键字sealed来指定。

 

 

final关键字在Java中被赋予了过多功能各不相同的含义,理解和使用时容易混淆。 

posted @ 2010-04-11 21:01  Bryan Wong  阅读(188)  评论(0)    收藏  举报