黑马程序员技术交流社区

标题: equals和==有什么区别? [打印本页]

作者: 李新    时间: 2014-7-18 18:29
标题: equals和==有什么区别?
本帖最后由 李新 于 2014-7-19 21:50 编辑

如题,最好能有一些例子,谢谢各位。
作者: 嗅ㄨiaǒ孑    时间: 2014-7-19 08:14
==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。equals方法是用于比较两个独立对象的内容是否相同,就好比去比较两个人的长相是否相同,它比较的两个对象是独立的。
作者: 卢宝辉    时间: 2014-7-19 09:55
== 比较内存地址、equals比较内容。显然,当equals为true时,==不一定为true;
扩展一下:
ArrayList 判断删除元素只依赖equals方法。
HashSet 删除、添加、包含元素先判断hashCode (也就是==判断)、再调用equals方法。
因为数据结构不同,所以依赖的方法不同。
如果哪里不对,请多多指教共同进步!谢谢




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