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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘 佳 中级黑马   /  2012-10-30 14:34  /  1254 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

equals调用了==的比较。

那么equals在哪些地方被复写?也就是equals什么时候跟==不同?

contains方法调用的是什么?他判断包含与否的条件是什么呢?很混淆。。

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1

查看全部评分

3 个回复

倒序浏览
想要彻底了解,除了查api外,还可以看java src。我把它们copy出来
类String中的equals是这样的
public boolean equals(Object anObject) {
        if (this == anObject) {
            return true;
        }
        if (anObject instanceof String) {
            String anotherString = (String) anObject;
            int n = value.length;
            if (n == anotherString.value.length) {
                char v1[] = value;
                char v2[] = anotherString.value;
                int i = 0;
                while (n-- != 0) {
                    if (v1 != v2)
                            return false;
                    i++;
                }
                return true;
            }
        }
        return false;
    }
将此字符串与指定的对象比较。当且仅当该参数不为 null,并且是与此对象表示相同字符序列的 String 对象时,结果才为 true。
覆盖:类 Object 中的 equals

参数:anObject - 与此 String 进行比较的对象。返回:如果给定对象表示的 String 与此 String 相等,则返回 true;否则返回 false。
类 Object 中的 equals
    public boolean equals(Object obj) {
        return (this == obj);
    }

指示其他某个对象是否与此对象“相等”。
参数:obj - 要与之比较的引用对象。返回:如果此对象与 obj 参数相同,则返回 true;否则返回 false。+++++++++++++++++++++++++
contains:
public boolean contains(CharSequence s) {
        return indexOf(s.toString()) > -1;
    }

当且仅当此字符串包含指定的 char 值序列时,返回 true。

参数:s - 要搜索的序列
返回:如果此字符串包含 s,则返回 true,否则返回 false

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1 很给力!

查看全部评分

回复 使用道具 举报
简单理解就是
equals:是对变量或常量的值进行比较,比的是内容。
==:比的是两个变量或常量的内存地址值。
回复 使用道具 举报
王豪 发表于 2012-10-30 15:59
简单理解就是
equals:是对变量或常量的值进行比较,比的是内容。
==:比的是两个变量或常量的内存地址值。 ...

这个谁都知道

麻烦看看我的问题再回答好吗?  我问的是不同的地方,着重不同之处
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马