易截截图软件、单文件、免安装、纯绿色、仅160KB

java中hashcode()和equals()的详解(转)

原贴地址http://www.javaeye.com/topic/257191
今天下午研究了半天hashcode()和equals()方法,终于有了一点点的明白,写下来与大家分享(zhaoxudong
2008.10.23晚21.36)。
1. 首先equals()和hashcode()这两个方法都是从object类中继承过来的。
equals()方法在object类中定义如下:
  public boolean equals(Object obj) {
return (this == obj);
}
很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们必需清楚,当String
、Math、还有Integer、Double。。。。等这些封装类在使用equals()方法时,已经覆盖了object类的equals()方法。比
如在String类中如下:
  public boolean equals(Object anObject) {
if (this == anObject) {
    return true;
}
if (anObject instanceof String) {
    String anotherString = (String)anObject;
    int n = count;
    if (n == anotherString.count) {
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n-- != 0) {
    if (v1[i++] != v2[j++])
return false;
}
return true;
    }
}
return false;
}
很明显,这是进行的内容比较,而已经不再是地址的比较。依次类推Double、Integer、Math。。。。等等这些类都是重写了
equals()方法的,从而进行的是内容的比较。当然了基本类型是进行值的比较,这个没有什么好说的。
我们还应该注意,Java语言对equals()的要求如下,这些要求是必须遵循的:
• 对称性:如果x.equals(y)返回是“true”,那么y.equals(x)也应该返回是“true”。
• 反射性:x.equals(x)必须返回是“true”。

类推性:如果x.equals(y)返回是“true”,而且y.equals(z)返回是“true”,那么z.equals(x)也应该返回是
“true”。

还有一致性:如果x.equals(y)返回是“true”,只要x和y内容一直不变,不管你重复x.equals(y)多少次,返回都是“true”。

• 任何情况下,x.equals(null),永远返回是“false”;x.equals(和x不同类型的对象)永远返回是“false”。

以上这五点是重


相关文档:

利用Java Swing设计标准对话框

Swing中提供了JOptionPane类来实现类似Windows平台下的MessageBox的功能,同样在Java中也有,利用JOptionPane类中的各个static方法来生成各种标准的对话框,实现显示出信息、提出问题、警告、用户输入参数等功能。这些对话框都是模式对话框。
  ConfirmDialog --- 确认对话框,提出问题,然后由用户自己来确认(按"Ye ......

选择排序算法的JAVA实现

package Utils.Sort;
/**
*利用选择排序法对数组排序,数组中元素必须实现了Comparable接口。
*/
public class ChooseSort implements SortStrategy
{
       /**
       *对数组obj中的元素以选择排序算法进行排序
     &n ......

冒泡排序算法的JAVA实现

package Utils.Sort;
/**
*利用冒泡排序法对数组排序,数组中元素必须实现了Comparable接口。
*/
public class BubbleSort implements SortStrategy
{
       /**
       *对数组obj中的元素以冒泡排序算法进行排序
     ......

JAVA编程学习方法分享 老技术人员的经验之谈

我是2000年大学毕业,在学校学的是经济专业,毕业后做JAVA软件开发.  
 
相信很多做技术的朋友都是从其他行业转过来的
ew roman';">,学习编程的过程和经验各不一样,我将自己的从业经历写了出来,请见:  
 
http://www.jobhotel.com.cn/yourbay/news-2.jsp?id=15353  
  ......

java数据库设计中的14个技巧

 下述十四个技巧,是许多人在大量的数据库分析与设计实践中,逐步总结出来的。对于这些经验的运用,读者不能生帮硬套,死记硬背,而要消化理解,实事求是,灵活掌握。并逐步做到:在应用中发展,在发展中应用。
      1. 原始单据与实体之间的关系
  
      可以是一对一、一对 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号