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的取值范围




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

重写hashcode的原因 以及为啥用31的个人理解

首先声明自己大部分的理解的出处:如何重写hashCode()和equals()方法 接下来自己的理解: 1、首先java中set 、HashMap貌似包括List等底层的存储都会把,存储...
  • fengcaho0616
  • fengcaho0616
  • 2017年04月20日 18:15
  • 516

java学习--如何重写hasCode()方法

在java的集合中,判断两个对象是否相等的规则是: 1,判断两个对象的hashCode是否相等     如果不相等,认为两个对象也不相等,完毕     如果相等,转入2 2,判断两个对象用eq...
  • jbfsdzpp
  • jbfsdzpp
  • 2014年12月10日 11:50
  • 666

Why hashcode 31?

前几天被人问到了hashcode如何实现,说实话,真的是没有自己写过,通常情况下都会通过IDE自动生成,惭愧。今天研究了下hashcode的生成原理,首先看一下String类中的hashCode方法...
  • ghsau
  • ghsau
  • 2014年03月16日 17:22
  • 4036

java中重写equals和hashCode方法

为什么要重写equals和hashCode方法,hashCode()和equals()定义在Object类中,这个类是所有java类的基类,所以所有的java类都继承这两个方法。 hashCode(...
  • u012805125
  • u012805125
  • 2015年09月21日 23:21
  • 1256

Java中hasCode方法

浅析Java中的hasCode方法 在Java的Object类中有一个方法: public native int hasCode(); 该方法返回一个int类型的数值,且是本地方法,因此在Object...
  • twc829
  • twc829
  • 2016年07月30日 08:25
  • 367

Java中方法的重写

一、方法的重写: 1.子类中出现了和父类中一模一样的方法声明,也被称为方法覆盖,方法重写(复写); 2.重写的格式: 1).返回值类型  方法名 ,形参列表:必须完全一致; A."返回值类型...
  • HiJson
  • HiJson
  • 2016年03月17日 14:51
  • 1285

什么是重写?重写的作用?

1、什么是重写?       个人理解:在子类中可以根据需要对从基类中继承来的方法进行重写,重写是对类中方法的扩充,因为继承用的是父类的东西,重写则不仅得到父类的东西,同时也加入了自己的东西   ...
  • Thinkingcao
  • Thinkingcao
  • 2017年02月13日 10:38
  • 2412

Java: 重写equals()和hashCode()

这个topic之前面试很多次,我一直没很好地回答。这次好好总结下。 众所周之,String 、Math、还有Integer、Double。。。。等这些封装类重写了Object中的equals()方法...
  • shanling2004
  • shanling2004
  • 2010年11月29日 10:55
  • 2865

java中byte的范围为何是-128--127而不是-127--127?

我来试着解释一下~一个byte由八个位组成,如00000000,其中,前7位表示数值,第8位是符号位(0为正,1为负)。这样+1就是00000001,-1就是10000001。最大的正数就是0 111...
  • qq_15037231
  • qq_15037231
  • 2017年08月09日 16:07
  • 135

关于String类中重写Object类中的方法

Object作为所有类的基类,它里面定义了许多的方法,最为常见的就是hashCode()、equals()、toString()方法。 一、hashCode()方法 首先来看一下什么是哈希码(Ha...
  • wulianghuan
  • wulianghuan
  • 2013年02月22日 15:35
  • 4158
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java中重写的hascode中的31是怎么来的
举报原因:
原因补充:

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