您现在的位置是:首页 > 正文

谈谈hashCode()

2024-02-01 05:15:40阅读 3

找到 hashCode()

hashCode()定义在 JDK 的 Object.java 中,这就意味着 Java 中的任何类型都包含有 hashCode() 函数。

public native int hashCode();

查看源码发现其存在 native 关键字修饰。

什么是native

native 即 JNI,Java Native Interface。

凡是一种语言,都希望是纯。比如解决某一个方案都喜欢就单单这个语言来写即可。Java平台有个用户和本地C代码进行互操作的API,称为Java Native Interface (Java本地接口)。

使用native关键字说明这个方法是原生函数,也就是这个方法是用C/C++语言实现的,并且被编译成了DLL,Java只负责调用。

这些函数的实现体在DLL中,JDK的源代码中并不包含,对我们是透明的。

Java是跨平台的语言,既然是跨了平台,所付出的代价就是牺牲一些对底层的控制,而Java要实现对底层的控制,就需要一些其他语言的帮助,这个就是native的作用了。

话题回到 hashCode(),它的作用是获取哈希码并返回。这个哈希码的作用是确定该对象在哈希表中的索引位置。

public class Test {
        public static void main(String args[]) {
                String Str = new String("www.runoob.com");
                System.out.println("字符串的哈希码为 :" + Str.hashCode() );
        }
}

输出结果:

字符串的哈希码为 :321005537

hashCode() 与 equals()

详见文章:Java hashCode() 和 equals()的若干问题解答

第4部分 hashCode() 和 equals() 的关系

网站文章

  • springboot拦截请求路径_第六章:如何在SpringBoot项目中使用拦截器

    拦截器对使用SpringMvc、Struts的开发人员来说特别熟悉,因为你只要想去做好一个项目必然会用到它。拦截器在我们平时的项目中用处有很多,如:日志记录(我们后续章节会讲到)、用户登录状态拦截、安...

    2024-02-01 05:15:11
  • 线性求乘法逆元

    乘法逆元的线性求法

    2024-02-01 05:15:03
  • LeetCode15——三数之和(排序+双指针)

    题目描述 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。 注意: 答案中不可以包...

    2024-02-01 05:14:57
  • 使用异步注解调用远程接口Spring Security认证授权不携带Token的问题

    同样项目中如果使用线程池调用远程接口,需要使用DelegatingSecurityContextExecutorService线程池。项目中开启异步注解@EnableAsync。项目中使用异步注解:@Async。

    2024-02-01 05:14:28
  • 腾讯三面面经(前端开发实习生)

    腾讯三面面经(前端开发实习生)我感觉是凉了orz…不管怎么样,菜鸡琳可千万不能气馁啊!!!just do it. 踏实努力学就好了!!总的来说还是很有收获的!流程:腾讯会议视频面(并没有开视频hhh)问题在浏览器输入网址之后有哪些过程,浏览器限制URL长度为多少IE:2083个字符;Firefox:65,536个字符;Safari: 80,000个字符;Opera: 190,...

    2024-02-01 05:14:22
  • 【PTA】5-7 使用同步机制协调线程的执行顺序

    【PTA】5-7 使用同步机制协调线程的执行顺序

    的计算,利用 Java 的同步机制,可以保证线程执行顺序的正确性。下面程序采用多个线程对整数执行。

    2024-02-01 05:14:06
  • ftp作业

    ftp作业

     a) 域的图:b) 你的用户的目录访问权限:c) 你用浏览器或其他软件访问FTP后的结果:

    2024-02-01 05:13:59
  • Linux 常用命令汇总(详细版)

    Linux 常用命令汇总(详细版)

    Linux 的文件系统是采用层级式的树状目录结构,在此结构中的最上层是根目录“/”,然后再次目录下再创建其他的目录。目录结构:以下是对这些目录的解释:less:可以按键盘上下方向键显示上下内容more...

    2024-02-01 05:13:30
  • mac工具

    mac工具

    iStat Menus 6激活密码Email: 982092332@qq.comSN: GAWAE-FCWQ3-P8NYB-C7GF7-NEDRT-Q5DTB-MFZG6-6NEQC-CRMUD-8MZ2K-66SRB-SU8EW-EDLZ9-TGH3S-8SGA参考文章:1、https://www.jianshu.com/p/1345a10331cb

    2024-02-01 05:13:23
  • AFE4400的使用

    AFE4400的使用

    随着人们越来越重视医疗健康,相对应的产品也随之推出。TI就很好的走在前面,对于生理信号采集方面不仅推出了ADS124x系列和ADS129x系列,也推出了集成了光传感器AFE系列。AFE4400 是一款非常适合于脉冲血氧仪应用的完全集成模拟前端 (AFE)。 此器件包含一个具有集成模数转换器 (ADC) 的低噪声接收器通道、一个 LED 发射部件和针对传感器以及 LED 故障检测的诊断功能。

    2024-02-01 05:13:17