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. JAVA加密算法系列-BASE64

    package ***; import java.io.IOException; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encode ...

  2. JavaWeb总结(四)—JSP深入解析

    一.JSP域对象 1.JSP属性范围(域对象范围) JSP提供了四个域对象,分别是pageContext.request.session.application. pageContext: 属性范围仅 ...

  3. JavaScript学习总结(一)DOM文档对象模型

    一.文档(D) 一个网页运行在浏览器中,他就是一个文档对象. 二.对象(O) "对象"是一种自足的数据集合.与某个特定对象相关联的变量被称为这个对象的属性,只能通过某个对象调用的函 ...

  4. Android IPC机制全解析<二>

    在AIDL文件中并不是所有的数据类型都可以使用,AIDL支持的数据类型如下: 基本数据类型(int.long.char.boolean.double等) String和CharSequence Lis ...

  5. JavaScript运算符优先级

    图片引用自:http://www.cnblogs.com/xxcanghai/p/5189353.html

  6. 【js数据结构】可逐次添加叶子的二叉树(非最优二叉树)

    最近小菜鸟西瓜莹看到了一道面试题: 给定二叉树,按层打印.例如1的子节点是2.3, 2的子节点是3.4, 5的子节点是6,7. 需要建立如图二叉树: 但是西瓜莹找到的相关代码都是用js构建最优二叉树, ...

  7. Mvc自定义验证

    假设我们书店需要录入一本书,为了简单的体现我们的自定义验证,我们的实体定义的非常简单,就两个属性,一个名称Name,一个出版社Publisher. public class BookInfo { pu ...

  8. Rookey.Frame v1.0 视频教程发布了

    经过昨天几个小时的折腾, Rookey.Frame v1.0开发视频教程终于发布了,由于是第一次做视频有很多地方做的不够好,后续我会慢慢改进,争取将视频教程做好. 本期发布视频: (一)Rookey. ...

  9. xmlplus 组件设计系列之零 - xmlplus 简介

    xmlplus 是什么 xmlplus 是博主写的一个 JavaScript 框架,用于快速开发前后端项目. xmlplus 基于组件设计,组件是基本的构造块.评价组件设计好坏的一个重要标准是封装度. ...

  10. 简谈-Python的注释、变量类型、标识符及关键字

    在Python程序中,要想支持中文输出,则要在代码前面添加 标识符:开发人员在程序中自定义的一些符号和名称 标示符是自己定义的,如变量名 .函数名等 标识符的规则:  标示符由字目.下划线和数字组成, ...