Merge pull request #41 from GungnirLaevatain/patch-4

modify item 17
This commit is contained in:
Joe 2020-01-13 04:36:03 -06:00 committed by GitHub
commit c15990d3c2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -97,7 +97,7 @@ public static final Complex I = new Complex(0, 1);
  **不仅可以共享不可变的对象,而且可以共享内部信息。** 例如,`BigInteger` 类在内部使用符号数值表示法。 符号用 `int` 值表示,数值用 `int` 数组表示。 `negate` 方法生成了一个数值相同但符号相反的新 `BigInteger` 实例。 即使它是可变的,也不需要复制数组;新创建的 `BigInteger` 指向与原始相同的内部数组。
  **不可变对象为其他对象提供了很好的构件building blocks**,无论是可变的还是不可变的。 如果知道一个复杂组件的内部对象不会发生改变,那么维护复杂对象的不变量就容易多了。这一原则的特例是,不可变对象可以构成 `Map` 对象的键和 `Set` 的元素,一旦不可变对象作为 `Map` 的键或 `Set` 里的元素,即使破坏了 `Map``Set` 的不可变性,但不用担心它们的值会发生变化
  **不可变对象为其他对象提供了很好的构件building blocks**,无论是可变的还是不可变的。 如果知道一个复杂组件的内部对象不会发生改变,那么维护复杂对象的不变性就容易多了。不可变对象是优秀的映射键和集合元素是这一原则的重要例子: 一旦不可变对象作为 `Map` 的键或 `Set` 里的元素,你就不需要担心`Map` 或 `Set` 的不变性被这些对象的值的变化所破坏
  **不可变对象无偿地提供了的原子失败机制(详见第 76 条)。** 它们的状态永远不会改变,所以不可能出现临时的不一致。