标签:
1. 用静态工厂方法代替构造器。
2.遇到多个参数构造器时考虑用构建器。
3.用私有构造器或美剧型强化Singleton。
4.通过私有构造器强化不可实例化的能力。
5.避免创建不必要的对象。
尽量使用String str = "XXX";而不是String str = new String("XXX");
6.消除过期的对象引用。
7.避免使用终结方法。
终结方法的何时被调用或是否被调用是不确定的。
8.覆盖equals是要遵守通用规定。
需要遵守自反性、对称性、传递性、一致性、非空性(x.equals(null)返回false)。
Java库中的Timestamp对Date进行了扩展,增加了nanoseconds域,equals实现违反了对称性。不能将Timestamp和Date用于同一个集合中,会引起不正确的行为。
提高equals的诀窍:a.使用==操作检查参数是否为这个对象的引用,如果比较操作可能很昂贵就值得这么做。b.使用instanceof操作检查参数是否为正确类型。c.把参数转换为正确的类型。d.覆盖equals是总要覆盖hashCode。e.不要企图让equals方法过于智能。f.不要将equals声明中的Object对象替换为其他类型。
9.覆盖equals时总要覆盖hashCode。
标签:
原文地址:http://www.cnblogs.com/vectorli/p/5401258.html