Java学习:identityHashCode和hashCode方法
2024-08-23 07:01:57
System类提供了一个identityHashCode(Object x)方法,这个方法返回的是指定对象的精确hashCode值,也就是根据该对象的地址计算得到的hashCode值。
当某个类的hashCode()方法被重写之后,该类实例的hashCode方法就不能唯一地标识该对象,但是如果两个对象的identityHashCode值相同,则这两个对象是一个对象。
通过以下代码加深理解:
public class IdentityHashCodeTest{
public static void main(String[] args){
String s1=new String("Hello");
String s2=new String("Hello");
System.out.println(s1.hashCode()+"----"+s2.hashCode());
System.out.println(System.identityHashCode(s1)+"----"+System.identityHashCode(s2)); String s3="Java";
String s4="Java";
System.out.println(System.identityHashCode(s3)+"----"+System.identityHashCode(s4));
}
}
输出结果如下:
结论;
1.s1和s2虽然是不同的两个对象,它们的identityHashCode值不同,但是由于String重写了hashCode方法,改为根据字符序列计算,所以第一个输出是一样而第二个是不一样的。
2.s3和s4是相同的对象,在常量池里,所以第三个输出是一样的。
最新文章
- BZOJ 1078: [SCOI2008]斜堆
- LightOJ1126 Building Twin Towers(DP)
- win7下IE主页无法修改,IE设置无法保存解决方案
- PAT乙级 1028. 人口普查(20)
- html中的特殊符号
- Markdown简单语法总结
- win7下安装maven3.1.1
- Qt 之 入门例程(二)
- 在webstorm开发微信小程序之使用阿里自定义字体图标
- JDK 和 OpenJDK 的区别
- Newtonsoft.Json 时间格式化
- HDU 1006 Digital Roots
- html5与css 1. web标准及组成
- AI 前馈神经网络
- 000 Python的运行
- OneASP 安全公开课,深圳站, Come Here, Feel Safe!
- go-restful 实现一个web server
- jquery之Ajax(一)
- S3C6410 SPI全双工读写流程分析(原创)【转】
- Scala实战高手****第9课:Scala类和对象彻底实战和Spark源码鉴赏
热门文章
- Java第09次实验(IO流)--实验报告
- spark streaming 2: DStream
- Windows 10下怎么远程连接 Ubuntu 16.0.4(小白级教程)
- Storm之WordCount初探
- Jmeter(十三) JDBC Request
- jquery.validate.js使用之自定义表单验证规则
- Java学习之==>;常用字符串方法
- gcc编译器创建和使用静态库、动态库
- Android IdleHandler 原理浅析
- MariaDB 连接查询,视图,事物,索引,外键