黑马程序员技术交流社区

标题: equals问题 [打印本页]

作者: 张海洋    时间: 2013-3-22 23:31
标题: equals问题
本帖最后由 张海洋 于 2013-3-23 19:28 编辑

两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?


还有GBk和UTM-8有什么区别?
作者: 李道福    时间: 2013-3-22 23:40
GBK是中文编码,只能识别中文;UTF-8是国际通用编码,包含了世界大部分国家的文字,能识别的文字比GBK要多
作者: lxww    时间: 2013-3-22 23:49
楼上正解
作者: 谢洋    时间: 2013-3-23 00:04
两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 以我的理解,我认为对
所有类的hashCode()和equals()方法都是从Object中继承过来的,通常继承Object的类都会复写这两个方法。
但是如果直接拿两个Object的对象来比较,如果equals相等,那hashcode也相同。


作者: MyNameIs520    时间: 2013-3-23 00:04
两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
这个可以使对的,可以使错的~~~主要是看hashcode()方法有没有被覆写
正常而言,在没有覆写的情况下,同一个类的两个对象,hashcode相同,说明两个对象指向同一个地址,值相同。
hashcode值不同,说明两个对象指向堆内存的不同地址,但是其值是有可能相同的。比如两个对象指向的地址都保存着相同的字符串或者数值~~
作者: VOIDMAIN    时间: 2013-3-23 01:27
第一个是对的,第二个的区别是UTF-8更国际化,GBK是你的开发系统的默认编码,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2