黑马程序员技术交流社区

标题: java中equals和“==”的区别 [打印本页]

作者: Havorld    时间: 2014-7-25 21:52
标题: java中equals和“==”的区别
本帖最后由 Havorld 于 2014-7-31 22:12 编辑

java中equals和“==”有什么不同啊
作者: 黑马_java猿    时间: 2014-7-25 21:55
这问题问的人好多啊!
equals和==的区别
==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。

作者: 毕业生    时间: 2014-7-25 22:10
0710期 的吧 同学
作者: 王一勇    时间: 2014-7-25 22:51
==通常是比较常量是否相等,是一个判断符;而equals是一个方法,在不同的地方重写会有不同的用法,如String中重写了此方法,是比较两个字符串是否一样。如果没有重写的话,默认比较两个对象的地址是否一样。
作者: 443201683@qq.co    时间: 2014-7-25 23:06
一个是比较地址一个是数值
作者: 掌柜的--刘饮    时间: 2014-7-25 23:17
http://bbs.itheima.com/thread-119571-1-1.html这个,你值得拥有

作者: Havorld    时间: 2014-7-31 22:12
掌柜的--刘饮 发表于 2014-7-25 23:17
http://bbs.itheima.com/thread-119571-1-1.html这个,你值得拥有

哈哈,非常感谢
作者: Mr.Better    时间: 2014-8-3 20:07
两个一个是值,一个是内容
作者: 晓风    时间: 2014-8-4 10:59
"==":
     一,当比较的类型是基本类型时,比较的是值;
     二,当比较的是引用类型时,比较的是变量的内存地址;
equals(Object)只能用于引用类型之间的比较,
    在Object中定义的equals方法默认比较的是地址,如果引用类型没有重写Object中的equals方法的话,默认的还是比较的地址;重写了Object中的的equals方法后,则才是比较的是值。
作者: xj55646    时间: 2014-8-4 12:36
==是判断是否为相同的实例
equals()是判断对象中的内容,可通过重写 compareTo()实现自己的equals()方法
作者: 大★宝    时间: 2014-8-4 13:00
本帖最后由 大★宝 于 2014-8-4 13:02 编辑

equals:比较的是地址值"==":   比较的是数值

作者: 侯岩卿    时间: 2014-8-4 13:52
==和equals都是比较的,前者是运算符,后者则是一个方法,==运算符专门用来比较两个变量的值是否相等,equals方法是用于比较两个独立对象的内容是否相同,而且equals方法可以重写,根据自己需要的方式来进行比较。
作者: dingpanbo    时间: 2014-8-4 14:25
==是比较数值吧,equals是方法
作者: 文盲庄稼汉    时间: 2014-8-4 15:02
“==”用于判断两个变量中存储的值是否相等。当用于引用类型的数据的时候就是比较地址值。equals是用来比较引用类型的数据中的内容是否一样。也就是堆内存中的内容。例如:对象
作者: 落日寂寞了星空    时间: 2014-8-4 15:36
在最高父类object中,equals和==是一样的都是比较地址,但是在众多的子类中,大部分都重写了equals,所以在大部分子类中,比较的是内容是否相等




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