【Java面試題】2 Java中使用final關鍵字修飾一個變量時,是引用不能變,還是引用的對象不能變?超詳細解析


/*
* 問題:使用final關鍵字修飾一個變量時,是引用不能變,還是引用的對象不能變
* 答:
* 使用final關鍵字修飾一個變量時,是指引用變量不能變,引用變量所指向的對象中的內容還是可以改變的。
*/
public class Test10 {
// final修飾基本類型的變量
public static final char CHAR = '中';
// final修飾引用類型的變量
public static final StringBuffer a = new StringBuffer("StringBuffer");

public static void main(String[] args) {
// 編譯報錯,引用不能變
// a = new StringBuffer("hehe");
// 引用變量所指向的對象中的內容還是可以改變的
a.append("xxx");

}

public static int method1(final int i) {
// i = i + 1;// 編譯報錯,因為final修飾的是基本類型的變量
return i;
}

// 有人在定義方法的參數(引用變量)時,可能想采用如下的形式來阻止方法內部修改傳進來的參數對象,
// 實際上,這是辦不到的,在該方法內部任然可以增加如下代碼來修改參數對象
public static void method2(final StringBuffer buffer) {
buffer.append("buffer");// 編譯通過,因為final修飾的是引用類型的變量
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM