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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© heima0503 中级黑马   /  2015-5-23 01:19  /  949 人查看  /  19 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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 比较的是内容!!!!!
         */
        }
}


评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

19 个回复

倒序浏览
我好像记得==是比较地址值,然后equals比较的是对象
回复 使用道具 举报
亲,应该是这样的:
==:如果是两个基本数据类型进行比较,那么比较的就是两个数据的值,也就是内容,如果比较的是两个引用类型(对象),则比较的就是地址
equals:只能比较引用数据类型(对象),如果该对象重写了equals方法,那么比较的就是内容,如果没有重写,则比较的也是地址
   由于String类比较特殊,它本身就已经重写了equals方法,所以比较的结果就是内容之间的比较
回复 使用道具 举报
这块本来就是晕晕的.
回复 使用道具 举报
sss18310878521 发表于 2015-5-23 23:10
亲,应该是这样的:
==:如果是两个基本数据类型进行比较,那么比较的就是两个数据的值,也就是内容,如果 ...

共勉!努力学习中
回复 使用道具 举报
学习学习!
回复 使用道具 举报
这一块 学的 晕晕 的
回复 使用道具 举报
简单点说  
==  如果比较数,就是我们普通讲的是否相等。如果不是数据之间比较,就是比较地址。
equals 表示两个对象内容是不是一样的。
回复 使用道具 举报
这个好像是课堂上的案例啊··················
回复 使用道具 举报
学习了谢谢分享
回复 使用道具 举报
今天老师提到了这点,==比较的是地址值,equals比较的是内容
回复 使用道具 举报
问个问题  equals 比较是能把两个对象的所有属性比较吗  如果属性个数不一样会是什么情况啊
回复 使用道具 举报
夜愿Relax 来自手机 中级黑马 2015-5-27 23:08:53
13#
今天刚好学到,复习复习
回复 使用道具 举报
问个问题 ,equals,比较是能把两个对象的所有属性比较吗 ,如果属性个数不一样会是什么情况啊?
回复 使用道具 举报
夜愿Relax 来自手机 中级黑马 2015-5-27 23:09:56
15#
今天刚好学到,复习复习
回复 使用道具 举报
==是永远比较地址,原始类型也是比较地址,因为原始类型是放在栈中的,放在栈中的原始如果值一样那么地址也一样。
回复 使用道具 举报
学习了!
回复 使用道具 举报
学习一下
回复 使用道具 举报
杨奉泊 发表于 2015-5-27 23:09
问个问题 ,equals,比较是能把两个对象的所有属性比较吗 ,如果属性个数不一样会是什么情况啊? ...

看这个类怎么重写equals()重写这个方法的
回复 使用道具 举报
一个总结,==是全额比较,类似于既比地址也比较内容。而equals则更多的倾向于比较内容即可!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马