java哈希值_java的hash值是什么

编程知识 更新时间:2023-04-06 16:21:37

hash值(hashcode)可以理解为唯一编码、摘要值等,具体实现可能是内存地址,在java中可用于识别两个变量是否其实是同个对象。同个对象则此刻的值必定相等,但不同对象也可以是数值相等。下面一起来详细了解一下吧。

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哈希值_java的hash值是什么

本文发布于:2023-04-06 16:21:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/7e6fc371d8706e08ba205f8e56750c7a.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:哈希值   java   hash   _java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 49887文章数
  • 14阅读数
  • 0评论数