这些域要么包含基本类型的值, 要么包含指向不可变对象的引用.长度非零的数组总是可变的, 所以, 类具有公有的静态final数组域, 或者返回这种域的访问方法, 这几乎总是错误的. -> 改进: 让数组域...对公有类, 应该用包含私有域和公有访问方法(getter)的类来代替, 对可变的类, 加上公有设值方法(setter).-> 保留了改变内部表现的灵活性.如果类是包级私有的, 或者是私有的嵌套类, 直接暴露它的数据域并没有本质的错误...每个实例中包含的所有信息都必须在创建该实例的时候就提供, 并在对象的整个生命周期内固定不变.为了使类成为不可变, 要遵循下面五条规则:不要提供任何会修改对象状态的方法.保证类不会被扩展...., 它允许外部类的实例被看作是另一个不相关的类的实例.例如: Map的集合视图, Set和List的迭代器.匿名类匿名类没有名字, 它不是外围类的一个成员, 它是在使用的时候同时被声明和实例化....如匿名的Comparator实例.创建过程对象. 如Runnable, Thread或者TimerTask实例.在静态工厂方法的内部.局部类局部类不常用.