本帖最后由 1453149997 于 2014-4-7 12:27 编辑
有这样一段代码: public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((name == null) ? 0 : name.hashCode()); return result; } 为了保证不同类的对象的哈希值不同,往往要在属性运算出来的值上加上某个数,但是为什么这里要使用prime*result呢?难道直接加上一个整数不行吗?而且为什么要把prime声明为final? |