item17 · 最小化可变性 不可变对象的优点 不可变对象本质上是线程安全的,它们不要求同步可以共享不可变对象,甚至也可以共享它们的内部信息为其他对象提供了大量的构建(?)无代价地提供了失败的原子性 缺点 每个不同的值都需要一个单独的对象 可以使用可变配套类解决如 String 的可变配套类是 StringBuilder 不可变原则 不要提供任何会修改对象状态的方法(setter)保证类不会被拓展(把类设为 final 或私有化构造器提供静态工厂)声明所有的域都是 final 的声明所有的域都是私有的确保对于任何可变组件的互斥访问(不要允许客户端可以直接访问引用的可变对象)