hash值(hashcode)在不同类中:
1、Object类的hashCode:返回对象的内存地点经由处置惩罚后的构造,因为每一个对象的内存地点都不一样,所以哈希码也不一样。
两个对象要完整相对必需哈希值一样。比较用equal()
PS1:任何类均为Object类的间接子类,所以均继续要领public int hashCode(),该要领返回的值平常是经由过程将该对象的内部地点转换成一个整数来完成的。如许能保证每一个对象的哈希码值不一样
PS2:这里的地点是指JVM假造出来的内存地点,不是现实物理内存地点。
PS3:哈希值和地点值是不一样的,哈希值是经由过程哈希算法散列得来的,而地点值是经由过程是和物理层面有关,是体系分派的,是不存在雷同的,而哈希值是能够经由过程强制手段设置为雷同的,也就是说哈希值是一种逻辑上的确保唯一性,而地点值就是物理上确保唯一性。
2、String类的hashCode:依据String类包括的字符串的内容,依据一种特别算法返回哈希码,只需字符串内容雷同,返回的哈希码也雷同。
比较字符串内容相称。用equal()
3、Integer类的hashCode:返回的哈希码就是Integer对象里所包括的谁人整数的数值。
比方,Integer i1=new Integer(100),i1.hashCode的值就是100 。
因而可知,2个一样大小的Integer对象,返回的哈希码也一样。
比较包装数值范例相称。用equal()
以上就是java的hash值是什么的细致内容,更多请关注ki4网别的相干文章!