effective java 学习总结
来源:互联网 发布:迈达斯软件正版多少钱 编辑:程序博客网 时间:2024/06/05 03:32
1. 非可变类 ,如何设计一个非可变类
一个非可变类是一个简单的类 它的实例不可以修改
String 基本类型的包装器 BigInteger
实现方案
不提供任何修改对象的方法
所有域设final的
保证没有可被子类改写的方法
所有域设置为私有(保证域不会被修改 其实保证 域也是 非可变类也是可以的 但是不推荐)
如果该类有指向可变对象的域 那么该必须保证客户无法获得指向该域的引用 ,切不可以用用户提供的参数来初始化只, 不可在任何访问方法返回此对象,在构造函数 访问方法,readObject 使用保护性拷贝。
非可变对象可以被自由共享
2. 保护性拷贝
public class Period{private Date start;private Date end;public Period(Date start,Date end){ this.start=new Date(start.getTime());this.end=new Date(end.getTime());}}
怕的是传入构造函数的引用被不好的人拿到。
- effective java 学习总结
- 《Effective Java》学习总结
- effective java 学习总结1
- 《Effective C++》学习总结
- Effective Java总结
- Effective JAVA 总结
- Effective Java 总结
- Java Effective 总结(0)
- effective java学习笔记
- Effective java学习笔记
- effective java学习笔记
- effective java 学习笔记
- Effective Java 学习笔记
- Effective Java 学习笔记
- Effective Java学习笔记
- Effective Java学习笔记
- Effective Java学习笔记
- Effective Java 学习笔记
- linux 下 pyqt安装方法
- java解惑学习阶段1
- ifenslave -c 失败原因
- Window.ShowModalDialog使用手册
- LCD 原理和移植总结
- effective java 学习总结
- 修改默认的undo_retention参数设置
- 自己编译的gingerbread SDK找不到target解决方法!
- C#操作Excel文件(读取Excel,写入Excel)
- 服务器上的数据库恢复
- [Software]应用GoogleAPI生成二维码
- 用SQL语句写某一月份的日历
- qq表情实现之二
- Linux 课上笔记