Java 不可变类
2019-06-21 22:19
113 查看
不可变类,如同其字面意思,意味着一旦创建了一个该类的对象,我们就无法改变它的内容。这一特性使得它在Java程序中具有很广泛的应用。所有包装类(如Byte、Boolean和Short等)和字符串String类都是不可变类。我们可以根据需要创建自己的不可变类。以下是定义一个不可变类的策略:
- 将类声明为final(无法创建子类);
- 将类中的数据成员声明为final和private(在创建对象后无法更改他们的值);
- 将构造器参数化;
- 不提供Setter方法(无法更改实例变量的值);
- 对于内部可变对象在其Getter方法中使用防御性拷贝技术(避免返回原始对象)。
相关文章推荐
- 关于java源码在编译时提示:编码GBK的不可映射字符 的问题
- java中String的传参和不可变问题探究
- Java中的String的 方法归类 及其 不可变性
- 彻底解开Java中String对象不可变的迷雾,让你不在疑惑
- 解决Java提示“编码GBK的不可映射字符”的问题
- JAVA不可变类(immutable)机制与String的不可变性(推荐)
- 解决Dos指令编译.java文件时, java “错误:编码GBK 的不可映射字符”
- Java可变类与不可变类
- JAVA中的String对象一定不可变?以及String.intern()
- 不可不知的java设计模式
- Java_final关键字,不可变类,缓存不可变类实例(缓存池技术)
- EffectiveJava(4)通过私有构造器强化不可实例化的能力
- 你不可不知的Java引用类型之——PhantomReference源码详解
- 如何在 Java 中实现不可变类
- 【Java基础】JAVA不可变类(immutable)机制与String的不可变性
- Java---不可变对象String
- 【java线程安全及不可变性】
- 为什么Java的string类要设成immutable(不可变的)
- Java 创建不可变对象-final关键字的使用总结
- 从字节码和JVM的角度解析Java核心类String的不可变特性