http://blog.csdn.net/zhangerqing/article/details/8093919

hashCode和identityHashCode的区别

I、 hashCode()方法是Object类下面的一个方法,供继承类重写,根据对象内存地址计算哈希值,String类重写了hashCode方法,并改为根据字符序列来计算哈希值

II、identityHashCode()方法是System类中的静态方法,根据对象内存地址来计算哈希值;

方法示例:

    public static void main(String[] args)
{
// 下面程序中s1和s2是两个不同对象
String s1 = new String("Hello");
String s2 = new String("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));
}

输出:

aaarticlea/png;base64,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" alt="" />

面试(1)-java-se-字符串的更多相关文章

  1. [Java SE] 字符串连接

    Java 支持多种字符串连接方式,总结如下: package cn.spads.tool.string; import java.text.MessageFormat; /** * <b> ...

  2. Java SE教程

    第0讲 开山篇 读前介绍:本文中如下文本格式是超链接,可以点击跳转 >>超链接<< 我的学习目标:基础要坚如磐石   代码要十份规范   笔记要认真详实 一.java内容介绍 ...

  3. 《写给大忙人看的java se 8》笔记

    现在才来了解java8,是不是后知后觉了点? 新的编程技术,个人不喜欢第一时间跟进. 待社区已有实践积淀再切入似乎更划算些? 一点点精明的考虑. 不多说,上代码. //读<写给大忙人看的java ...

  4. Java SE 6 新特性: Java DB 和 JDBC 4.0

    http://www.ibm.com/developerworks/cn/java/j-lo-jse65/index.html 长久以来,由于大量(甚至几乎所有)的 Java 应用都依赖于数据库,如何 ...

  5. Java SE 6 新特性: 对脚本语言的支持

    2006 年底,Sun 公司发布了 Java Standard Edition 6(Java SE 6)的最终正式版,代号 Mustang(野马).跟 Tiger(Java SE 5)相比,Musta ...

  6. Java空字符串与null的区别和判断字符串是否为空的方法

    Java空字符串与null的区别: 1.类型null表示的是一个对象的值,而并不是一个字符串.例如声明一个对象的引用,String a = null ;""表示的是一个空字符串,也 ...

  7. java判断字符串是否为空的方法总结

    http://blog.csdn.net/qq799499343/article/details/8492672 以下是java 判断字符串是否为空的四种方法: 方法一: 最多人使用的一个方法, 直观 ...

  8. Java Se 基础系列(笔记) -- OO

    记录所学到的关于Java Se的一些基础知识 1.对象是通过“属性(成员变量)”和“方法”来分别对应事物所具有的静态属性和动态属性 2.类(Class)是对某一类事物的抽象,对象(Object)为某个 ...

  9. 黑马程序员 ——Java SE(1)

    ----<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训 ...

  10. Java判断字符串是否为空的三种方法

    方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低.1: if(s == null || s.equals("")); 方法二: 比较字符串长度, 效率高, 是我知道的最 ...

随机推荐

  1. Android Studio 安装后首次启动的 Config path ...... is invalid 问题(转)

    原文链接:http://m.blog.csdn.net/blog/hnust_xiehonghao/46127775 1. 问题描述: 安装好Android Studio后,启动时弹出如下信息: Co ...

  2. 关于解决配置Tomact过程中出现的相关问题

    最近在学习JavaWeb, 但是在第一步的时候就出现问题了, 什么问题呢, 就是关于Tomact的配置. 下面我就详细说明一下我配置过程中出现的问题以及怎么解决的,  希望对大家能有所帮助. 首先,我 ...

  3. 初学VUE2.0

    初学VUE2.0 (个人笔记,写完后发现好乱....下期使用markdown书写.) 概述 webstorm添加对VUE的支持 http://www.jianshu.com/p/142dae4f8b5 ...

  4. Linq: Aggregate

    Aggregate累加器 今天看东西的时候看见这么个扩展方法Aggregate(累加器)很是陌生,于是乎查了查,随手记录一下. 直接看一个最简答的版本,其他版本基本没什么区别,需要的时候可看一下 pu ...

  5. keil5之32环境配置

    终于配置好了!!又是经过一下午加晚上的奋战,终于把环境配置好了,多亏了我强大的资料整理能力(哈哈). 真是不容易啊,本来打算放弃的,去问问别人吧.但是想想,还是靠自己吧,靠谁都不如靠自己,真是的,慢慢 ...

  6. iOS·官方文档译文框架源码注解

    导语

  7. Json对象和Json字符串之间的转换

    json字符串转json对象,调用parse方法: var b='{"name":"2323","sex":"afasdf&quo ...

  8. PL/SQL 自动补全[转]

    1.新建 shortcuts.txt 内容如下: s = SELECT t.* FROM t w = WHERE b = BETWEEN AND l = LIKE '%%' o = ORDER BY ...

  9. 深入浅出学习HTTP协议

    之前学习javaWeb只是大致了解了一下,今天重点介绍下http请求,当是复习吧! 一.http基础概念 1.什么是http协议? HTTP是Hyper Text Transfer Protocol( ...

  10. 关于vector push_back()与其他方式读取数据的效率对比

    引言: 在读取大量数据(数组)时,使用vector会尽量保证不会炸空间(MLE),但是相比于scanf的读取方式会慢上不少.但到底效率相差有多大,我们将通过对比测试得到结果. 测试数据:利用srand ...