Object类的equals方法和hashCode方法之间有什么关系? 不是。equals可以被你自己重载,你可以编写任何判断相等的原则,默认情况下,是递归比较成员对象依次是否相等。散列码就是hashCode,是根据hash算法生成的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 equals的默认判断相等的原则是什么?好象跟"=="不一样. equals是用来比较对象的内容是不是相等==是用来比较两个引用所指向的对象是不是一个,也就是比较内存地址是不是相同例如String a="123";String b=a;String c="123";那么 a==b 真,a==c 假,a.equals(c) 真至于hashCode是用来将对象放入象Hashtable 之类的容器时使用的,Hashtable 会根据所放入对象的hashCode值来选择不同的Bucket,如果该对象没有提供重写hashCode方法,那么会使用Object类缺省的hashCode方法,即根据其内存地址来计算(这通常不是我们需要的),所以如果希望自己的对象能够正确的放入Hashtable 之类的容器,那么要重写hashCode方法 楼上例子有误String a="123";String b=a;String c="123";在这种情况下,a==b,a==c,a.equals(c) 均为真应该为:String a = "123";String b = a;String c = new String("123");那么 a == b 真,a == c 假,a.equals(c) 真 equals 是用来 比较2个对象的内容的 在Think in Java 中有重点介绍hashcode和equals的部分 建议直接看JDK DOC中相关文档。 楼上的,你5个三角就是用“看文档”这样的回答混来的吗?答案:没有任何关系。但在实现上有共同之处。在Object类中:equals方法的实现与"=="运算符的作用是一样的。当且仅当两个Object引用指向同一个地址时,返回true。hashCode返回的int值与本对象内存地址有关。也就是:当且仅当两个Object引用指向同一个地址时,返回相同的hashCode。 to alienbat(死灵巫师) : 谢了 laugh alienbat(死灵巫师) ( ) 这种问题,要我解释绝对不如跑去看文档,我就算解释也没有文档精确,至多是把文档搬过来。看了你的解释,我劝你还是不要误人的好,太片面了。另外,楼主连手边的文档都懒得翻,非要跑到这里来浪费人时间精力给解释,进步太难。好比楼主眼前一碗粥,自己都过10岁了还非要人喂,我说:自己动手吃。居然有人跳出来说:你20多岁的年龄都长哪里去了?连喂下都不会,要他自己动手。sign希望楼主自己体会,以后碰到这种问题,到底要怎么处理,是还等人喂?还是自己动手。 怎么用一个监听器来实现对两个按钮的监听? System.in.read()从键盘上读入的字符放在那了? Random类? 新手提问小问题--检查错误 [请教]java使用递归算法来实现字符串翻转? 问一个简单的javac命令问题 linux 下的java class path 问题 关一个小笨蛋生存的困惑,还请各位GG、JJ一定要帮帮忙呀~~~~ Java2 核心技朮,java编程思想哪里有下载的 如何用java实现其他语言那种双击就可运行,而不必在命令行下键入java....才能运行 剩2个bug就可以运行了,帮忙! 关于apathe安装的问题
==是用来比较两个引用所指向的对象是不是一个,也就是比较内存地址是不是相同
例如
String a="123";
String b=a;
String c="123";
那么 a==b 真,a==c 假,a.equals(c) 真至于hashCode是用来将对象放入象Hashtable 之类的容器时使用的,Hashtable 会根据所放入对象的hashCode值来选择不同的Bucket,如果该对象没有提供重写hashCode方法,那么会使用Object类缺省的hashCode方法,即根据其内存地址来计算(这通常不是我们需要的),所以如果希望自己的对象能够正确的放入Hashtable 之类的容器,那么要重写hashCode方法
String a="123";
String b=a;
String c="123";
在这种情况下,a==b,a==c,a.equals(c) 均为真应该为:
String a = "123";
String b = a;
String c = new String("123");
那么 a == b 真,a == c 假,a.equals(c) 真
没有任何关系。但在实现上有共同之处。
在Object类中:
equals方法的实现与"=="运算符的作用是一样的。当且仅当两个Object引用指向同一个地址时,返回true。hashCode返回的int值与本对象内存地址有关。也就是:当且仅当两个Object引用指向同一个地址时,返回相同的hashCode。
好比楼主眼前一碗粥,自己都过10岁了还非要人喂,
我说:自己动手吃。
居然有人跳出来说:你20多岁的年龄都长哪里去了?连喂下都不会,要他自己动手。sign希望楼主自己体会,以后碰到这种问题,到底要怎么处理,是还等人喂?还是自己动手。