首頁 > Java > java教程 > 主體

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

WBOY
發布: 2023-08-20 22:05:09
轉載
1021 人瀏覽過

為什麼在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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板