当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: 每个Java对象都有hashCode()和 equals()方法。
 

 

    摘要:实现计划框架 在上一节,我们学习了如何使用计划框架,并将它与 java 定时器框架进行了比较。下面,我将向您展示如何实现这个框架。除了 清单 3 中展示的 scheduleiterator 接口,构成这个框架的还有另外两个类 —— scheduler 和 schedulertask 。这些类实际上在内部使用 timer 和 schedulertask,因为计划其实就是一系列......
    摘要:在论坛中看到有好多人问关于,数据库中信息和表的信息的获得的问题,如:数据库中有多少表,表中的字段的含义等,为了解决这个问题我学习了相关的两个类resultsetmetadata和databasemetadata来解决相关问题。下面是我的一些学习的心得体会,希望能够给朋友们带来一点启示或者帮助。首先是resultsetmetadata: 这个类完成了查询结果信息和结果中的列的各种信息。它包含的方法......


Java 理论与实践:哈希

每个java对象都有hashcode()与 equals()方法.许多类忽略(override)这些方法的缺省实施,以在对象实例之间提供更深层次的语义可比性.在java理念与实践这一部分,java开发人员brian goetz向您介绍在创建java类以有效与准确定义hashcode()与equals()时应遵循的规则与指南.

  object类有两种方法来推断对象的标识:equals()与hashcode().一般来说,如果您忽略了其中一种,您必须同时忽略这两种,因为两者之间有必须维持的至关重要的关系.特殊情况是根据equals() 方法,如果两个对象是相等的,它们必须有相同的hashcode()值(尽管这通常不是真的). 【程序编程相关:开发Spring MVC应用程序(3-4

定义对象的相等性 【推荐阅读:开发Spring MVC应用程序(3-3

public boolean equals(object obj) { return (this == obj); } 【扩展信息:PowerDynamo开发笔记

  特定类的equals()的语义在implementer的左侧定义;定义对特定类来说equals()意味着什么是其设计工作的一部分.object提供的缺省实施简单引用下面等式:

  在这种缺省实施情况下,只有它们引用真正同一个对象时这两个引用才是相等的.同样,object提供的hashcode()的缺省实施通过将对象的内存地址对映于一个整数值来生成.由于在某些架构上,地址空间大于int值的范围,两个不同的对象有相同的hashcode()是可能的.如果您忽略了hashcode(),您仍旧可以使用system.identityhashcode()方法来接入这类缺省值.

  忽略 equals() -- 简单实例

  缺省情况下,equals()与hashcode()基于标识的实施是合理的,但对于某些类来说,它们希望放宽等式的定义.例如,integer类定义equals() 与下面类似:

public boolean equals(object obj) {

return (obj instanceof integer

&& intvalue() == ((integer) obj).intvalue());

}

  在这个定义中,只有在包含相同的整数值的情况下这两个integer对象是相等的.结合将不可修改的integer,这使得使用integer作为hashmap中的关键字是切实可行的.这种基于值的equal方法可以由java类库中的所有原始封装类使用,如integer.float.character与boolean以及string(如果两个string对象包含相同顺序的字符,那它们是相等的).由于这些类都是不可修改的并且可以实施hashcode()与equals(),它们都可以做为很好的散列关键字.


...   下一页
 ·www.eygle.com全面改版:)    »显示摘要«
    摘要:对 www.eygle.com 进行了一次全面改版 欢迎大家去看看:) ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE