首頁  >  文章  >  Java  >  為什麼在Java中String類別是不可變的或是final的?

為什麼在Java中String類別是不可變的或是final的?

WBOY
WBOY轉載
2023-08-20 22:05:091009瀏覽

為什麼在Java中String類別是不可變的或是final的?

##字串是不可變的意味著我們不能改變物件本身,但是我們可以改變物件的參考。該字串被設定為最終字串,以不允許其他人擴展它並破壞其不變性。

  • 安全性參數通常在網路連接、資料庫連接URL、使用者名稱/密碼中表示為字串等等。如果它是可變的,那麼這些參數可以很容易地更改。
  • ##同步和並發
  • 自動使字串不可變使它們線程安全,從而解決同步問題。
  • Caching
  • 當編譯器優化我們的String 物件時,似乎如果兩個物件具有相同的值(a =“test”,b =“ test」),因此我們只需要一個字串物件(對於兩個物件)和b,這兩個將指向同一個物件)。
  • 類別載入
  • 字串用作類別載入的參數。如果是可變的,則可能會導致載入錯誤的類別(因為可變物件會更改其狀態)。
  • #範例:
public class StringImmutableDemo {
   public static void main(String[] args) {
      String st1 = "Tutorials";
      String st2 = "Point";
      System.out.println("The hascode of st1 = " + st1.hashCode());
      System.out.println("The hascode of st2 = " + st2.hashCode());
      st1 = st1 + st2;
      System.out.println("The Hashcode after st1 is changed : "+ st1.hashCode());
   }
}

:輸出

The hascode of st1 = -594386763
The hascode of st2 = 77292912
The Hashcode after st1 is changed : 962735579

以上是為什麼在Java中String類別是不可變的或是final的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除