Java Immutable Class 不可变类

更多 Java 基础知识方面的文章,请参见文集《Java 基础知识》


什么是不可变对象

  • 对象一旦创建,就不能被修改
  • 任何修改都会创建一个新的对象

不可变对象的好处

  • 不需要拷贝构造函数和 clone
  • 不需要保护性拷贝 defensive copy
  • 线程安全的,因为内部状态不会改变

如何实现一个Immutable Class 不可变类

  • class 设置为 final,不能被继承
  • 变量设置为 private final,不能被修改
  • 不提供 setter 方法,只能使用构造函数来初始化变量

参考 String:

public final class String
    implements java.io.Serializable, Comparable, CharSequence {
    /** The value is used for character storage. */
    private final char value[];

    /** Cache the hash code for the string */
    private int hash; // Default to 0

你可能感兴趣的:(Java Immutable Class 不可变类)