@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
其中
hashCode()的使用时为了减少equal方法的使用,使工作更加高效方便,那么
final int prime = 31;是怎么回事呢,为什么偏偏是31呢
原理:
31是个不大不小的质数(2的5次方-1(即1<<<<<-1))使<pre name="code" class="java">ashCode()中的result值不会大于int的取值范围