final修飾變量表示變量初始化后就不能再改變。
一、對于基礎類型來說,用final修飾后其值不可以改變。
1.
final int a;
a = 5;
2.final int a = 5;
二、對于引用類型來說,用final修飾后其引用的對象不可改變,但可以改變對象的內容。
java中用final修飾函數的參數,只是函數體內不能修改這個形參所指向的對象,但是仍能修改對象內容
void f ( final String str){
str = new String();//不允許
str.toLowerCase();//允許
}
三、final 與 static final
public class T {
final int a = new Random(10).nextInt();
static final int b = new Random(10).nextInt();
public static void main(String[] args) {
T t1 = new T();
T t2 = new T();
System.out.PRintln(t1.a);
System.out.println(t1.b);
System.out.println(t2.a);
System.out.println(t2.b);
}
}
結果:
t1.a != t2.a;
t1.b == t2.b;
四、例子
1、
final int i = 0;
i++;//允許
2、
final String s = "abc";
s.toLowerCase();//允許
3、
final int[] a = {1,2,3};
a[1] = 1;//允許
a = new int[5];//不允許
新聞熱點
疑難解答