A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张海洋 中级黑马   /  2013-3-22 23:31  /  1576 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张海洋 于 2013-3-23 19:28 编辑

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


还有GBk和UTM-8有什么区别?

点评

如果问题未解决,请继续追问回复者,如果问题已经解决,请将分类改为“已解决”,谢谢  发表于 2013-3-23 17:28

5 个回复

倒序浏览
GBK是中文编码,只能识别中文;UTF-8是国际通用编码,包含了世界大部分国家的文字,能识别的文字比GBK要多

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1 鼓励鼓励

查看全部评分

回复 使用道具 举报
楼上正解
回复 使用道具 举报
两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 以我的理解,我认为对
所有类的hashCode()和equals()方法都是从Object中继承过来的,通常继承Object的类都会复写这两个方法。
但是如果直接拿两个Object的对象来比较,如果equals相等,那hashcode也相同。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
这个可以使对的,可以使错的~~~主要是看hashcode()方法有没有被覆写
正常而言,在没有覆写的情况下,同一个类的两个对象,hashcode相同,说明两个对象指向同一个地址,值相同。
hashcode值不同,说明两个对象指向堆内存的不同地址,但是其值是有可能相同的。比如两个对象指向的地址都保存着相同的字符串或者数值~~

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
第一个是对的,第二个的区别是UTF-8更国际化,GBK是你的开发系统的默认编码,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马