文档

Java™ 教程
隐藏目录
不可变对象
教程:基本的Java类
课程:并发

不可变对象

如果一个对象在构造后其状态不能改变,则被认为是不可变的。在创建简单、可靠的代码时,广泛依赖不可变对象被广泛接受为一种良好的策略。

不可变对象在并发应用中特别有用。由于它们无法改变状态,因此无法被线程干扰破坏,也不会处于不一致的状态。

程序员通常不愿意使用不可变对象,因为他们担心创建新对象的成本相对于原地更新对象而言更高。对象创建的影响经常被高估,并且可以通过不可变对象相关的一些效率来抵消。其中包括由于垃圾回收而减少的开销,以及无需保护可变对象免受破坏所需的代码的消除。

下面的子节将使用一个其实例是可变的类,并从中派生出具有不可变实例的类。这样做时,它们提供了这种转换的一般规则,并演示了不可变对象的一些优势。


上一页: 保护的代码块
下一页: 一个同步类的示例