避免创建不必要的对象
来源:互联网 发布:美微网络电视看香蕉 编辑:程序博客网 时间:2024/05/27 02:26
public class Person { private final Date birthDate; public Person(Date birthDate) { // Defensive copy - see Item 39 this.birthDate = new Date(birthDate.getTime()); } // Other fields, methods omitted // DON'T DO THIS! public boolean isBabyBoomer() { // Unnecessary allocation of expensive object Calendar gmtCal = Calendar.getInstance(TimeZone.getTimeZone("GMT")); gmtCal.set(1946, Calendar.JANUARY, 1, 0, 0, 0); Date boomStart = gmtCal.getTime(); gmtCal.set(1965, Calendar.JANUARY, 1, 0, 0, 0); Date boomEnd = gmtCal.getTime(); return birthDate.compareTo(boomStart) >= 0 && birthDate.compareTo(boomEnd) < 0; }}
优化版本:
class Person { private final Date birthDate; public Person(Date birthDate) { this.birthDate = new Date(birthDate.getTime()); } private static final Date BOOM_START; private static final Date BOOM_END; static { Calendar gmtCal = Calendar.getInstance(TimeZone.getTimeZone("GMT")); gmtCal.set(1946, Calendar.JANUARY, 1, 0, 0, 0); BOOM_START = gmtCal.getTime(); gmtCal.set(1965, Calendar.JANUARY, 1, 0, 0, 0); BOOM_END = gmtCal.getTime(); } public boolean isBabyBoomer() { return birthDate.compareTo(BOOM_START) >= 0 && birthDate.compareTo(BOOM_END) < 0; }}
- 避免创建不必要的对象
- 避免创建不必要的对象
- 避免创建不必要的对象
- 避免创建不必要的对象
- 避免创建不必要的对象
- 避免创建不必要的对象。
- 避免创建不必要的对象
- 05、避免创建不必要的对象
- 避免创建不必要的SPWeb对象
- EffectiveJava-避免创建不必要的对象
- 第五条:避免创建不必要的对象
- 5、避免创建不必要的对象
- EffactiveJava-避免创建不必要的对象
- 05-避免创建不必要的对象
- 高效Java05:避免创建不必要的对象
- effective--避免创建不必要的对象
- effictive--避免创建不必要的对象
- Effective Java -- 避免创建不必要的对象
- Visual Studio开发Windows Mobile程序
- android到http中文乱码解决
- c++自定义String类
- visual studio 2012 express 全序列号
- Google Analytics(谷歌分析) 架构与原理
- 避免创建不必要的对象
- 网络报文中流的处理
- TCP连接探测中的Keepalive和心跳包. 关键字: tcp keepalive, 心跳, 保活
- Cocos2d-x 实现时钟
- 霍夫变换(Hough Transform)直线检测
- Eclipse中快捷键
- HDU 1166(敌兵布阵)
- 设计模式之命令模式,command
- UISwitch