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

 

    摘要:不变对象具有许多能更方便地使用它们的特性,包括不严格的同步需求和不必考虑数据讹误就能自由地共享和高速缓存对象引用。尽管不变性可能未必对于所有类都有意义,但大多数程序中至少有一些类将受益于不可变。在本月的 java 理论与实践中,brian goetz 说明了不变性的一些长处和构造不变类的一些准则。请在附带的论坛中与作者和其他读者分享您关于本文的心得。(也可以单击文章顶部或底部的“讨论&......
 ·c#中调用windows api的要点    »显示摘要«
    摘要:在.net framework sdk文档中,关于调用windows api的指示比较零散,并且其中稍全面一点的是针对visual basic .net讲述的。本文将c#中调用api的要点汇集如下,希望给未在c#中使用过api的朋友一点帮助。另外如果安装了visual studio .net的话,在c:\program files\microsoft visual studio .net\fram......


Java 理论与实践: 哈希
每个java对象都有hashcode()与 equals()方法.许多类忽略(override)这些方法的缺省实施,以在对象实例之间提供更深层次的语义可比性.在java理念与实践这一部分,java开发人员brian goetz向您介绍在创建java类以有效与准确定义hashcode()与equals()时应遵循的规则与指南.您可以在讨论论坛与作者与其它读者一同探讨您对本文的看法.(您还可以点击本文顶部或底部的讨论进入论坛.)

虽然java语言不直接支持关联数组 -- 可以使用任何对象作为一个索引的数组 -- 但在根object类中使用hashcode()方法明确表示期望广泛使用hashmap(及其前辈hashtable).理想情况下基于散列的容器提供有效插入与有效检索;直接在对象模式中支持散列可以促进基于散列的容器的开发与使用.

【程序编程相关:[intro.compliance] -

定义对象的相等性 【推荐阅读:ASP六大对象介绍

特定类的equals()的语义在implementer的左侧定义;定义对特定类来说equals()意味着什么是其设计工作的一部分.object提供的缺省实施简单引用下面等式: 【扩展信息:软件分享之VNN (内网应用不必再考虑N

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

public boolean equals(object obj) { return (this == obj); }

在这种缺省实施情况下,只有它们引用真正同一个对象时这两个引用才是相等的.同样,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中的关键字是切实可行的.
...   下一页

 ·在c#中使用热键隐含窗口    »显示摘要«
    摘要: 在c#中采用的是事件驱动方式,但在我们使用的过程中,有时候通过调用系统原有的消息,处理起来会比较简单一些,特别是在处理与dll文件的交互时,的确是非常的方便。 在c#中使用自定义消息 在c#中使用自定义消息非常简单,只需要下面几个简单的步骤就可以了:1、 定义消息定义消息的方法和vc中定义消息有一点点不同比如在vc中申明一个自定义消息:#define wm_test wm_user + 101而......
» 本期热门文章:

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