Java 中的原始包裝類是不可變的


在 Java 中,不可變類是指一旦建立,其內容就不能更改的類。同樣的概念,不可變物件是指一旦構造,其狀態就不能更改的物件。

包裝類被設計為不可變的,因為有以下優點:

  • 由於不可變物件的狀態一旦建立就不能更改,因此它們會自動同步。不可變物件是自動執行緒安全的,避免了由於使用同步而產生的開銷。

  • 一旦建立,包裝類不可變物件的狀態就不能更改,因此它們不可能進入不一致的狀態。

  • 對不可變物件的引用可以輕鬆地共享或快取,而無需複製或克隆它們,因為它們的狀態在構造後永遠不會更改。

  • 包裝類作為不可變物件最好的用途是作為對映的鍵。

  • 同樣,由於包裝類例項的不可變性,快取的目的是促進共享。因此,如果您的應用程式中有十幾個地方需要具有值為 42 的 Integer 例項,則可以使用一個例項。

示例展示包裝類作為不可變物件。

class Demo {
   public static void main(String[] args) {
      Integer i = new Integer(20); //initialize a object of Integer class with value as 20.
      System.out.println(i);
      operate(i);// method to change value of object.
      System.out.println(i); //value doesn't change shows that object is immutable.
   }
   private static void operate(Integer i) {
      i = i + 1;
   }
}

輸出

20
20

更新於: 2020年6月25日

1K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告