zoukankan      html  css  js  c++  java
  • java公用方法:equals方法详解

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

     public boolean equals(Object obj) {
            return (this == obj);
        }

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

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

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

    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;
        }

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

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

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

  • 相关阅读:
    Django中关于MySQL的bug总结
    css的外边距合并或者外边距塌陷问题
    双十二开篇之作
    浅谈css的行内类型标签和块级标签
    css的padding和border问题
    Django中的bug总结
    css清除浮动的方法
    Ubuntu图标变成问号
    pku1149 PIGS
    sizeof()功能
  • 原文地址:https://www.cnblogs.com/xiaotian15/p/3665317.html
Copyright © 2011-2022 走看看