hashCode和identityHashCode的区别
2017-05-16 15:02
253 查看
1.hashCode()方法是Object类下面的一个方法,供继承类重写,根据对象内存地址计算哈希值,
String类重写了hashCode方法,并改为根据字符序列来计算哈希值
2.identityHashCode()方法是System类中的静态方法,根据对象内存地址来计算哈希值;
输出:
69609650----69609650
13078969----3154093
28399250----28399250
String类重写了hashCode方法,并改为根据字符序列来计算哈希值
2.identityHashCode()方法是System类中的静态方法,根据对象内存地址来计算哈希值;
方法示例: public static void main(String[] args) { //下面程序中s1和s2是两个不同对象 String s1 = newString("Hello"); String s2 =newString("Hello"); //String类重写了Object类的hashCode方法——改为根据字符序列计算hashCode值, //因为s1和s2的字符序列相同,所以它们的hashCode方法返回值相同 System.out.println(s1.hashCode() +"----" + s2.hashCode()); //s1和s2是不同的字符串对象,所以它们的identityHashCode值不同, //identityHashCode是根据对象的地址计算得到的,所以任何两个不同的对象的 //identityHashCode值总是不相等 System.out.println(System.identityHashCode(s1)+ "----" +System.identityHashCode(s2)); //s3和s4是相同的字符串对象,所以它们的identityHashCode值相同 String s3 ="Java"; String s4 ="Java"; System.out.println(System.identityHashCode(s3)+"----" +System.identityHashCode(s4));}
输出:
69609650----69609650
13078969----3154093
28399250----28399250
相关文章推荐
- hashCode和identityHashCode的区别
- hashCode和identityHashCode的区别
- Object.hashCode()方法与System.identityHashCode(object)的区别
- hashCode和identityHashCode的区别你知道吗?
- hashCode和identityHashCode的区别
- hashCode和identityHashCode的区别
- hashCode和identityHashCode的区别
- hashCode和identityHashCode的区别
- hashCode和identityHashCode底层是怎么生成的
- hashCode和identityHashCode 的关系
- 关于System.identityHashCode(obj) 与 obj.hashcode()
- hashCode和identityHashCode的关系
- Java学习之equals()、hashCode()、identityHashCode()、toString()和==
- 关于System.identityHashCode() 与 obj.hashcode()
- 关于System.identityHashCode(obj) 与 obj.hashcode()
- System.identityhashcode()
- 返回对象的唯一标识identityHashCode
- Java语言中Object对象的hashCode()取值的底层算法是怎样实现的?,object hashcode
- 两段检验系统生成的identityHashCode是否重复的代码
- JAVA File类的hashCode()和计算文件hash值的区别