原始包装器类在Java中是不可变的

在Java中,不可变类是一经创建就不能更改其内容的类。在同一概念上,不可变对象是一旦构造便无法更改其状态的对象。

包装器类由于以下优点而变得不可变-

  • 由于不可变对象的状态一旦创建就无法更改,它们将自动同步。不可变对象是自动线程安全的,因此避免了由于使用同步而导致的开销。

  • 一旦创建了包装类的不变对象的状态就无法更改,因此它们不可能进入不一致的状态。

  • 对不可变对象的引用可以很容易地共享或缓存,而不必复制或克隆它们,因为在构造之后就无法更改状态。

  • 将包装器类用作不可变对象的最佳用途是作为映射的键。

  • 同样由于包装类实例的不可变性,缓存的目的是促进共享。因此,如果您的应用程序中有十几个地方需要将Integer实例的值设置为42,则只能使用一个实例。

显示包装器类为不可变的示例。

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