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+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告