更新時間:2023-05-15 來源:黑馬程序員 瀏覽量:
當使用final關鍵字修飾一個變量時,這個變量就成為了一個常量,它的值不能被修改,但是它所引用的對象本身是可以被修改的。
具體的原因我們看如下代碼演示:
final int x = 5; x = 6; // 編譯錯誤,因為 x 是 final 常量,它的值不能被修改 final StringBuilder sb = new StringBuilder("Hello"); lb.append(", World!"); // 可以修改 lb 所引用的 StringBuilder 對象 System.out.println(lb.toString()); // 輸出:Hello, World!
在上面的代碼中,我們使用final關鍵字定義了一個整數常量x,它的值被設為5。然后我們試圖將x的值修改為6,但是由于x是一個常量,所以編譯器會報錯。
接著我們定義了一個StringBuilder對象,用final修飾它的引用lb。然后我們可以通過lb引用來修改 StringBuilder對象的內容,例如向其中添加一些文本。最后,我們將StringBuilder對象的內容輸出到控制臺上,可以看到輸出結果為 "Hello, World!",表明StringBuilder對象的內容已經被成功修改了。