首頁常見問題正文

final關鍵字修飾一個變量時,是引用不能變,還是引用的對象不能變?

更新時間:2023-05-15 來源:黑馬程序員 瀏覽量:

IT培訓班

  當使用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對象的內容已經被成功修改了。

分享到:
在線咨詢 我要報名
和我們在線交談!