結論:final 修飾對象,對象的內容可變,引用不可變。 final 應用於類、方法和變數、對象時意義是不同的,但本質是一樣的,都表示不可改變。 但是修飾對象時要註意:因為對象是引用類型,存儲的是地址,所以final修飾之後,指的是引用地址不可變。 案例: final char[] chars = ...
結論:final 修飾對象,對象的內容可變,引用不可變。
final 應用於類、方法和變數、對象時意義是不同的,但本質是一樣的,都表示不可改變。
但是修飾對象時要註意:因為對象是引用類型,存儲的是地址,所以final修飾之後,指的是引用地址不可變。
案例:
final char[] chars = {'1','2','3'};//定義final修飾的char數組對象
System.out.println(chars);
System.out.println("chars數組地址" + chars.hashCode());
chars[0] = '0';
chars[2] = 'b';
System.out.println(chars);
System.out.println("chars數組地址" + chars.hashCode());
char[] chars2 = new char[3];
// chars = chars2;//嘗試修改對象的引用,結果報錯了
/*運行結果:
123
chars數組地址460141958
02b
chars數組地址460141958
*/
//由此可見,可以修改數組對象內容且數組的地址不會改變,而且不可以修改數組的引用