java中重写的hascode中的31是怎么来的

原创 2016年08月30日 11:30:08
@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的取值范围




版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

effective_java之一:覆写 equals 和 hasCode 方法

提升下自己的表达及总结能力,也许若干年后可以去做一名合格的讲师~~~ 一、覆写equals方法 为什么要覆写equals方法呢?覆写的原则是什么呢?原因以下: 有时候做到 两个实例对象在 逻辑上是否相...
  • klov001
  • klov001
  • 2013年11月16日 14:39
  • 903

hascode和equals为什么要同时复写—Java源码中的奥秘

在很多编程手册和技术推送文章中,都要求我们在创建一个类型的对象时候,强烈建议实现的其中的几个方法,一般包括: 1.  toString() 2. equals()3. hashcode()  此...
  • muskter
  • muskter
  • 2017年07月28日 10:03
  • 137

java:equals与hascode( )

Java中的equals方法和hashcode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要重写这两个方法。1.区别eqauls()和hashcode()方...

Java equals与hasCode详解

以下是关于HashCode的官方文档定义: [plain] view plaincopy hashcode方法返回该对象的哈希码值。支持该方法是为哈希表提供一些优点,例如,ja...

java中的hasCode与equals理解(转载) .

1. 首先equals()和hashcode()这两个方法都是从object类中继承过来的。  equals()方法在object类中定义如下:    public boolean equals(...

java中的hasCode与equals理解(转载)

1. 首先equals()和hashcode()这两个方法都是从object类中继承过来的。  equals()方法在object类中定义如下:    public boolean equals(Ob...
  • sg_0504
  • sg_0504
  • 2015年03月10日 13:49
  • 348

31. 怎样在Xpages应用中写Java

机制 菜单栏Windows—Open EclipseViews—Package Explorer,打开一个Xpages应用,新建一个Java源文件夹(如WebContent\src),创建一个Jav...
  • starrow
  • starrow
  • 2013年02月21日 14:08
  • 3778

Java经典基础练习31-40

【程序31】 题目:将一个数组逆序输出。    [java] view plain copy print?import java.util.*;  public class lianxi31 {   ...

面试题31:连续子数组的最大和(java)

package findMax; /** * 连续子数组的最大和 * @author root * */ public class FindMax { static int[] data ...

Java+Selenium3方法篇31-利用Robot类截图

前面我们介绍了Selenium中TakeScreenshot类来截图,得到的图片是浏览器窗口内的截图。有时候,只截浏览器窗口内的图是不够的,而且TakeScreenshot截图只针对浏览器的web事件...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java中重写的hascode中的31是怎么来的
举报原因:
原因补充:

(最多只允许输入30个字)