黑马程序员技术交流社区

标题: equals 与 == [打印本页]

作者: heima0503    时间: 2015-5-23 01:19
标题: equals 与 ==
public class 系统equals {
        public static void main(String[] args) {
               
        /**
         * 原版  equals()
         * public boolean equals(Object obj) {
         *                 return (this == obj);
         * }
         *  言外之意::: 不重写的equals 就是 == ,比较地址!!!!
         *
         *
         *
         * 系统对于String的重写
         *  public boolean equals(Object anObject) {
         *          char v1[] = value;
         *          char v2[] = anotherString.value;
         *          int i = 0;
         *          while (n-- != 0) {
         *                   if (v1[i] != v2[i])
         *                           return false;
         *                   i++;
         *          }
         *          return true;
         *  }   
         *  言外之意,String的equals 比较的是内容!!!!!
         */
        }
}



作者: L番茄X    时间: 2015-5-23 22:45
我好像记得==是比较地址值,然后equals比较的是对象
作者: sss18310878521    时间: 2015-5-23 23:10
亲,应该是这样的:
==:如果是两个基本数据类型进行比较,那么比较的就是两个数据的值,也就是内容,如果比较的是两个引用类型(对象),则比较的就是地址
equals:只能比较引用数据类型(对象),如果该对象重写了equals方法,那么比较的就是内容,如果没有重写,则比较的也是地址
   由于String类比较特殊,它本身就已经重写了equals方法,所以比较的结果就是内容之间的比较
作者: 你们敬爱的人    时间: 2015-5-24 00:21
这块本来就是晕晕的.
作者: heima0503    时间: 2015-5-27 18:20
sss18310878521 发表于 2015-5-23 23:10
亲,应该是这样的:
==:如果是两个基本数据类型进行比较,那么比较的就是两个数据的值,也就是内容,如果 ...

共勉!努力学习中
作者: 石头888    时间: 2015-5-27 18:30
学习学习!
作者: 914360849    时间: 2015-5-27 21:57
这一块 学的 晕晕 的
作者: canyellwang    时间: 2015-5-27 22:18
简单点说  
==  如果比较数,就是我们普通讲的是否相等。如果不是数据之间比较,就是比较地址。
equals 表示两个对象内容是不是一样的。
作者: 仅此一抹心醉    时间: 2015-5-27 22:41
这个好像是课堂上的案例啊··················
作者: a397131103    时间: 2015-5-27 22:43
学习了谢谢分享
作者: 18530919536    时间: 2015-5-27 22:53
今天老师提到了这点,==比较的是地址值,equals比较的是内容
作者: 杨奉泊    时间: 2015-5-27 23:07
问个问题  equals 比较是能把两个对象的所有属性比较吗  如果属性个数不一样会是什么情况啊
作者: 夜愿Relax    时间: 2015-5-27 23:08
今天刚好学到,复习复习
作者: 杨奉泊    时间: 2015-5-27 23:09
问个问题 ,equals,比较是能把两个对象的所有属性比较吗 ,如果属性个数不一样会是什么情况啊?
作者: 夜愿Relax    时间: 2015-5-27 23:09
今天刚好学到,复习复习
作者: 唐智超    时间: 2015-5-27 23:42
==是永远比较地址,原始类型也是比较地址,因为原始类型是放在栈中的,放在栈中的原始如果值一样那么地址也一样。
作者: 南方小道士    时间: 2015-5-27 23:57
学习了!
作者: yas丶    时间: 2015-5-28 07:31
学习一下
作者: 阜南lxd    时间: 2015-5-28 08:48
杨奉泊 发表于 2015-5-27 23:09
问个问题 ,equals,比较是能把两个对象的所有属性比较吗 ,如果属性个数不一样会是什么情况啊? ...

看这个类怎么重写equals()重写这个方法的
作者: kmlitheima    时间: 2015-5-28 09:36
一个总结,==是全额比较,类似于既比地址也比较内容。而equals则更多的倾向于比较内容即可!




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