`
feigme
  • 浏览: 153057 次
  • 性别: Icon_minigender_1
  • 来自: 球面世界
社区版块
存档分类
最新评论

HashCode 理解测试

    博客分类:
  • Java
阅读更多
java 代码
  1. public class HashCodeTest {   
  2.   
  3.     /**  
  4.      * @throws java.lang.Exception  
  5.      */  
  6.     @Before  
  7.     public void setUp() throws Exception {}   
  8.   
  9.     /**  
  10.      * @throws java.lang.Exception  
  11.      */  
  12.     @After  
  13.     public void tearDown() throws Exception {}   
  14.        
  15.     @Test  
  16.     public void testHashCode(){   
  17.         String a = new String("AA");   
  18.         String b = a;   
  19.         String c = new String("AA");   
  20.         String d = new String("BB");   
  21.         String e = "AA";   
  22.         String f = "AA";   
  23.            
  24.         System.out.println("String a hashcode is : "+ a.hashCode());   
  25.         System.out.println("String b hashcode is : "+ b.hashCode());   
  26.         System.out.println("String c hashcode is : "+ c.hashCode());   
  27.         System.out.println("String d hashcode is : "+ d.hashCode());   
  28.         System.out.println("String e hashcode is : "+ e.hashCode());   
  29.         System.out.println("String f hashcode is : "+ f.hashCode());   
  30.            
  31.         System.out.println("a.equals(b) : "+ a.equals(b));   
  32.         System.out.println("a==b : "+ (a==b));   
  33.         System.out.println("a.equals(c) : "+ a.equals(c));   
  34.         System.out.println("a==c : "+ (a==c));   
  35.         System.out.println("b.equals(c) : "+ b.equals(c));   
  36.         System.out.println("b==c : "+ (b==c));     
  37.         System.out.println("a.equals(e) : "+ a.equals(e));   
  38.         System.out.println("a==e : "+ (a==e));   
  39.         System.out.println("e.equals(f) : "+ e.equals(f));   
  40.         System.out.println("e==f : "+ (e==f));   
  41.            
  42.            
  43.         Person p1 = new Person();   
  44.         Person p2 = p1;   
  45.         Person p3 = new Person();   
  46.            
  47.         System.out.println("Model p1 hashcode is : "+ p1.hashCode());   
  48.         System.out.println("Model p2 hashcode is : "+ p2.hashCode());   
  49.         System.out.println("Model p3 hashcode is : "+ p3.hashCode());   
  50.         System.out.println("p1.equals(p2) : "+ p1.equals(p2));   
  51.         System.out.println("p1==p2 : "+ (p1==p2));   
  52.         System.out.println("p1.equals(p3) : "+ p1.equals(p3));   
  53.         System.out.println("p1==p3 : "+ (p1==p3));   
  54.         System.out.println("p2.equals(p3) : "+ p2.equals(p3));   
  55.         System.out.println("p2==p3 : "+ (p2==p3));   
  56.     }   
  57.   
  58. }  

打印的结果为:

java 代码
  1. String a hashcode is : 2080  
  2. String b hashcode is : 2080  
  3. String c hashcode is : 2080  
  4. String d hashcode is : 2112  
  5. String e hashcode is : 2080  
  6. String f hashcode is : 2080  
  7. a.equals(b) : true  
  8. a==b : true  
  9. a.equals(c) : true  
  10. a==c : false  
  11. b.equals(c) : true  
  12. b==c : false  
  13. a.equals(e) : true  
  14. a==e : false  
  15. e.equals(f) : true  
  16. e==f : true  
  17. Model p1 hashcode is : 12934710  
  18. Model p2 hashcode is : 12934710  
  19. Model p3 hashcode is : 28064776  
  20. p1.equals(p2) : true  
  21. p1==p2 : true  
  22. p1.equals(p3) : false  
  23. p1==p3 : false  
  24. p2.equals(p3) : false  
  25. p2==p3 : false  

结论:

待续。。。

分享到:
评论

相关推荐

    AIC的Java课程1-6章

    第9章 常用类 4课时  理解Object类及其常用方法equals,hashCode和finalize等。  能够使用String,StringBuffer,StringBuilder类创建字符串对象和使用其方法,分辨不同类之间的区别。 ...

    Java2核心技术.part5

    5.2.2相等测试与继承 5.2.3 hashCode方法 5.2.4 toString方法 5.3泛型数组列表 5.3.1访问数组列表元素 5.3.2类型化与原始数组列表的兼容性 5.4对象包装器与自动打包 5.5反射 5.5.1 Class类 ...

    Java2核心技术.part3

    5.2.2相等测试与继承 5.2.3 hashCode方法 5.2.4 toString方法 5.3泛型数组列表 5.3.1访问数组列表元素 5.3.2类型化与原始数组列表的兼容性 5.4对象包装器与自动打包 5.5反射 5.5.1 Class类 ...

    Java2核心技术.part1

    5.2.2相等测试与继承 5.2.3 hashCode方法 5.2.4 toString方法 5.3泛型数组列表 5.3.1访问数组列表元素 5.3.2类型化与原始数组列表的兼容性 5.4对象包装器与自动打包 5.5反射 5.5.1 Class类 5.5.2...

    Java2核心技术.part6

    5.2.2相等测试与继承 5.2.3 hashCode方法 5.2.4 toString方法 5.3泛型数组列表 5.3.1访问数组列表元素 5.3.2类型化与原始数组列表的兼容性 5.4对象包装器与自动打包 5.5反射 5.5.1 Class类 ...

    Java2核心技术.part4

    5.2.2相等测试与继承 5.2.3 hashCode方法 5.2.4 toString方法 5.3泛型数组列表 5.3.1访问数组列表元素 5.3.2类型化与原始数组列表的兼容性 5.4对象包装器与自动打包 5.5反射 5.5.1 Class类 ...

    Java2核心技术.part2

    5.2.2相等测试与继承 5.2.3 hashCode方法 5.2.4 toString方法 5.3泛型数组列表 5.3.1访问数组列表元素 5.3.2类型化与原始数组列表的兼容性 5.4对象包装器与自动打包 5.5反射 5.5.1 Class类 ...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    1.2.4 测试环境是否安装成功 8 1.2.5 如果失败了怎么办? 9 1.3 让自己的第一个程序运行起来 10 1.3.1 编写自己的Hello World源程序 10 1.3.2 编译自己的HelloWorld程序 11 1.3.3 让代码运行起来 13 1.4 初探...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    1.2.4 测试环境是否安装成功 8 1.2.5 如果失败了怎么办? 9 1.3 让自己的第一个程序运行起来 10 1.3.1 编写自己的Hello World源程序 10 1.3.2 编译自己的HelloWorld程序 11 1.3.3 让代码运行起来 13 1.4 初探...

    JAVA基础课程讲义

    测试类的定义方式 57 简单的学生类编写示例 58 内存分析 59 属性(field,或者叫成员变量) 59 引用类型 60 类的方法 60 对象的创建和使用 60 构造器(或者叫做构造方法,constructor) 60 垃圾回收机制(Garbage ...

    javaSE代码实例

    9.7.2 不允许进行测试的情况 174 9.8 小结 175 第10章 构造器——对象制造的工厂 176 10.1 基础知识 176 10.1.1 编写构造器的语法规则 176 10.1.2 访问限制修饰符与构造器 176 10.1.3 构造器与返回...

    Hibernate中文详细学习文档

    19.5. 理解集合性能(Understanding Collection performance) 19.5.1. 分类(Taxonomy) 19.5.2. Lists, maps 和sets用于更新效率最高 19.5.3. Bag和list是反向集合类中效率最高的 19.5.4. 一次性删除(One ...

    Hibernate+中文文档

    19.5. 理解集合性能(Understanding Collection performance) 19.5.1. 分类(Taxonomy) 19.5.2. Lists, maps 和sets用于更新效率最高 19.5.3. Bag和list是反向集合类中效率最高的 19.5.4. 一次性删除(One ...

    达内 coreJava 习题答案

    1,编写程序,判断给定的某个年份是否是闰年。 闰年的判断规则如下: (1)若某个年份能被4整除但不能被100整除,则是闰年。 (2)若某个年份能被400整除,则也是闰年。 import java.util.Scanner;...

    Hibernate参考文档

    1.4.3. 部署与测试 1.5. 总结 2. 体系结构(Architecture) 2.1. 概况(Overview) 2.2. 实例状态 2.3. JMX整合 2.4. 对JCA的支持 2.5. 上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得...

    hibernate 体系结构与配置 参考文档(html)

    部署与测试 1.5. 总结 2. 体系结构(Architecture) 2.1. 概况(Overview) 2.2. 实例状态 2.3. JMX整合 2.4. 对JCA的支持 2.5. 上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    19.5. 理解集合性能(Understanding Collection performance) 19.5.1. 分类(Taxonomy) 19.5.2. Lists, maps 和sets用于更新效率最高 19.5.3. Bag和list是反向集合类中效率最高的 19.5.4. 一次性删除(One ...

    Hibernate 中文 html 帮助文档

    19.5. 理解集合性能(Understanding Collection performance) 19.5.1. 分类(Taxonomy) 19.5.2. Lists, maps 和sets用于更新效率最高 19.5.3. Bag和list是反向集合类中效率最高的 19.5.4. 一次性删除(One ...

    HibernateAPI中文版.chm

    19.5. 理解集合性能(Understanding Collection performance) 19.5.1. 分类(Taxonomy) 19.5.2. Lists, maps 和sets用于更新效率最高 19.5.3. Bag和list是反向集合类中效率最高的 19.5.4. 一次性删除(One ...

    hibernate3.2中文文档(chm格式)

    19.5. 理解集合性能(Understanding Collection performance) 19.5.1. 分类(Taxonomy) 19.5.2. Lists, maps 和sets用于更新效率最高 19.5.3. Bag和list是反向集合类中效率最高的 19.5.4. 一次性删除(One ...

Global site tag (gtag.js) - Google Analytics