1、
无论何时,只要你覆写了equals 方法,你就必须同时覆写hashCode 方法。对于大多数在Object中声明的非final的方法,都需要注意这一点。
2、
当你想要进行覆写时,千万不要进行重载。@Override public Boolean equals(Object o) { ... }在使用这个注释时,除非被注释的方法确实覆写了一个超类方法,否则它将不能编译。
3、
以0开头的整数类型字面常量将被解释成为八进制数值。
4、
IdentityHashMap 的文档中叙述道:“这个类用一个散列表实现了Map 接口,它在比较键时,使用的是引用等价性而不是值等价性”。语言规范保证了字符串是内存限定的,换句话说,相等的字符串常量同时也是相同的。
不要因为偶然地添加了一个返回类型,而将一个构造器声明变成了一个方法声明。
5、
Comparator 的文档,你就会看到它所实现的排序关系必须是可传递的(transitive),换句话说,(compare(x,y) > 0)&&(compare(y,z) > 0)蕴含着compare(x,z) > 0。