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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如题所示,感激万分

2 个回复

倒序浏览
==如果是基本类型数据比较的是基本数据值,如果是引用类型,比较的是对象的地址值。
回复 使用道具 举报
这是java语言的定义:
1) 对象相等则hashCode一定相等;
2) hashCode相等对象未必相等
1.如果是基本变量,没有hashcode和equals方法,基本变量的比较方式就只有==;
2.如果是变量,由于在java中所有变量定义都是一个指向实际存储的一个句柄(你可以理解为c++中的指针),在这里==是比较句柄的地址(你可以理解为指针的存储地址),而不是句柄指向的实际内存中的内容,如果要比较实际内存中的内容,那就要用equals方法,如果是你自己定义的一个类,比较自定义类用equals和==是一样的,都是比较句柄地址,因为自定义的类是继承于object,而object中的equals就是用==来实现的。
我们用的String等等类型equals是比较实际内容,是因为String等常用类已经重写了object中的equals方法,让equals来比较实际内容。



回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马