IdentityHashCodeTest
2024-09-19 09:58:21
Java学习:identityHashCode和hashCode方法,
System类提供了一个identityHashCode(Object x)方法,这个方法返回的是指定对象的精确hashCode值,也就是根据该对象的地址计算得到的hashCode值。
当某个类的hashCode()方法被重写之后,该类实例的hashCode方法就不能唯一地标识该对象,但是如果两个对象的identityHashCode值相同,则这两个对象是一个对象。
通过以下代码加深理解:
1 public class IdentityHashCodeTest{
2 public static void main(String[] args){
3 String s1=new String("Hello");
4 String s2=new String("Hello");
5 System.out.println(s1.hashCode()+"----"+s2.hashCode());
6 System.out.println(System.identityHashCode(s1)+"----"+System.identityHashCode(s2));
7
8 String s3="Java";
9 String s4="Java";
10 System.out.println(System.identityHashCode(s3)+"----"+System.identityHashCode(s4));
11 }
12 }
输出结果如下:
结论;
1.s1和s2虽然是不同的两个对象,它们的identityHashCode值不同,但是由于String重写了hashCode方法,改为根据字符序列计算,所以第一个输出是一样而第二个是不一样的。
2.s3和s4是相同的对象,在常量池里,所以第三个输出是一样的。
最新文章
- jquery缓存使用jquery.cookies.2.2.0.min.js
- nodejs最新教程
- js原型基础
- HDU 5769 后缀数组
- word2vec模型原理与实现
- poj3660 最短路/拓扑序
- Java实战之04JavaWeb-03会话技术
- 转: Ant 脚本的结构化设计
- Java 8新特性探究(八)精简的JRE详解
- DNS信息
- .NET Framework 各版本区别(简介)
- php中查询mysql如何在IN array中用
- Prism for WPF初探(构建简单的模块化开发框架)
- Java延时器
- 关于JS获取某月最后一天
- 【Spring Security】三、自定义数据库实现对用户信息和权限信息的管理
- My latest news
- Elasticsearch 的一些关键概念
- 147.Insertion Sort List---链表排序(直接插入)
- Extjs 5 可选择日期+时间的组件DateTimeField
热门文章
- JDBC——Connection数据库连接对象
- 1.spring源码-BeanPostProcessor后置处理器
- (转)DNS使用的是TCP协议还是UDP协议
- 跨表更新,Mysql Update Join
- centOS7中启动MySQL数据库提示: Failed to start mysqld.service: Unit not foundc
- C++-HDU2196-Computer-[树的直径]
- mini-batch是什么 以及dataloader的作用
- php设计模式之责任链模式实现举报功能实例代码
- JS 数组克隆方法总结
- 马俊龙ansible教程分享