Effective Java 第 15 条: 使可变性最小化
来源:互联网 发布:js鼠标拖动图片 编辑:程序博客网 时间:2024/05/16 03:19
不可变类只是实例不能被修改的类。每个实例中包含的所有信息都必须在创建实例的时候就提供,并在对象的整个生命周期(lifetime)内固定不变。Java 平台类库中包含许多不可变的类,其中有String、基本类型包装类、BigInteger 和 BigDecimal。存在不可变的类有许多理由:不可变的类更加易于设计、实现和使用。他们不容易出错,且更加安全。
为了使类成为不可变,要遵循下面五条规则:
- 不要提供任何会修改对象状态的方法(也称为mutator)
- 保证类不会被扩展
- 使所有的域都是final的
- 使所有的域都是私有的
- 确保对于任何可变组件的互斥访问
不可变对象本质上是线程安全的,它们不要求同步。所以,不可变对象可以被自由的共享。
不可变对象的缺点是:对于每一个不同的值都需要一个单独的对象。
String StringBuffer StringBuilder的关系类似的是BigInteger和BitSet
使类成为不可子类化的另一种方法是将类的构造函数私有化,然后提供静态工厂来产生对象。
- Effective Java 第 15 条: 使可变性最小化
- 《Effective java》读书记录-第15条-使可变性最小化
- Effective Java 第十五条:使可变性最小化
- 第15条:使可变性最小化
- 第15条:使可变性最小化
- 第15条:使可变性最小化
- Effective Java(使可变性最小化)
- Effective Java 读书笔记——15:使可变性最小化
- effective java(15) 之使可变性最小化
- 【Effective Java】Ch4_Class:Item15_使可变性最小化
- Effective Java读书笔记-使可变性最小化
- 第15条:使可变性最小化(创建不可改变类)
- Effective Java 类和接口 15.使可变性最小化
- 第15条:使可变性最小
- 第十五条:可变性最小化
- (15):使可变性最小化
- Java学习笔记12:使可变性最小化
- Effective Java 第13条 : 使类和成员的可访问性最小化
- #pragma命令详解
- 平衡二叉树 AVL实现(2)
- mii-tool
- js调用php和php调用js的方法举例
- 随即算法找第K大数
- Effective Java 第 15 条: 使可变性最小化
- 【算法导论】排序算法总结
- 转载open-iscsi iscsid 创建 与通信
- Manacher's ALGORITHM: O(n)时间求字符串的最长回文子串
- PAT 1004 Counting Leaves
- 平衡二叉树 AVL 实现(3)
- SpringMVC @RequestBody接收Json对象字符串
- Jackson将json字符串转换成泛型List
- Java中浏览器的文件下载时文件名乱码问题