首页 > 编程语言 > 详细

java公用方法:equals方法详解

时间:2014-04-16 23:30:53      阅读:554      评论:0      收藏:0      [点我收藏+]

equals函数在基类object中已经定义,源码如下:

bubuko.com,布布扣
 public boolean equals(Object obj) {
        return (this == obj);
    }
bubuko.com,布布扣

从源码中可以看出默认的equals()方法与“==”是一致的,都是比较的对象的引用,而非对象值。

这里与我们常识中equals()用于对象的比较是相饽的,原因是java中的大多数类都重写了equals()方法。

下面已String类举例,String类equals()方法源码如下:

bubuko.com,布布扣
public boolean equals(Object anObject) {
        if (this == anObject) {
            return true;
        }
        if (anObject instanceof String) {
            String anotherString = (String)anObject;
            int n = count;
            if (n == anotherString.count) {
                char v1[] = value;
                char v2[] = anotherString.value;
                int i = offset;
                int j = anotherString.offset;
                while (n-- != 0) {
                    if (v1[i++] != v2[j++])
                        return false;
                }
                return true;
            }
        }
        return false;
    }
bubuko.com,布布扣

String类的equals()非常简单,只是将String类转换为字符数组,逐位比较。

综上,使用equals()方法我们应当注意:

 1. 如果应用equals()方法的是自定义对象,你一定要在自定义类中重写系统的equals()方法。

java公用方法:equals方法详解,布布扣,bubuko.com

java公用方法:equals方法详解

原文:http://www.cnblogs.com/xiaotian15/p/3665317.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!