笔试失败的动力来源于什么!

每天我都在复习Java基础今天笔试一道天天见的题,我没做对,心理的惭愧不说,天天看的东西我居然没有写出来这事就equals方法的底层实现,我现在就equals方法进行一个简单的实现。

首先equals方法是做什么的,在我的理解,它是被用来对对象进行比较,判断是否两个对象的内容是否相等,并且返回Boolean值。

首先分析代码是如何实现的:

  1. 先对两个对象进行’==‘比较如果相同直接返回true,不同则继续使用以下方法进行比较;
  2. 对两个对象进行instanceof 看是否属于String,如果属于在比较其长度是否相同;
  3. 如果长度相同,在比较其每个位置对应的字符是不是相同,如果相同则返回true,否则这两个对象不同。

下面代码是我自己改写的equals方法,仅供参考:

public boolean equals(Object ojb1, Object ojb2){
    if (ojb1 == ojb2){
        return true;
    }
    if(ojb1 instanceof String && ojb2 instanceof String){
        String str1 = (String) ojb1;
        String str2 = (String) ojb2;
        int m = str1.length();
        int n = str2.length();
        if (m == n){
            char v1[] = str1.toCharArray();
            char v2[] = str2.toCharArray();
            int i = 0;
            while( n-- != 0 ){
                if (v1[i] != v2[i])
                    return false;
                i++;
            }
            return true;
        }
    }
    return false;
}