==和equals()(课堂笔记)


前言


提示:以下是本篇文章正文内容,下面案例可供参考

一、==和equals()

  • == :它的作用是判断两个对象的地址是不是相等。即,判断两个对象是不是同一个对象。(基本数据类型==比较的是值,引用数据类型比较的内存地址)
  • equals():它的作用是判断两个对象是否相等。但它一般有两种使用情况
    情况一:类没有覆盖equals()方法。则通过equals()比较该类的两个对象时,等价于调用了Object类的equals()方法,也就是通过"=="比较这两个对象
public boolen equals(Object obj){
    
    
		return (this==obj);
}
  • 情况二
    类覆盖了equals()方法。一般,我们都会覆盖equals()方法来两个对象的内容相等;若它们的相等,则返回true(即,认为这两个对象相等);
package ab;

public class equals {
    
    
    public static void main(String[] args) {
    
    
        String s1,s2;
        s1=new String("天道酬勤");
        s2=new String("天道酬勤");
        System.out.println(s1==s2);
        System.out.println(s1.equals(s2));
        String s3,s4;
        s3="天道酬勤";
        s4="天道酬勤";
        System.out.println(s3==s4);
        System.out.println(s3.equals(s4));
    }
}

package ab;
public class equals {
    
    
    public static void main(String[] args) {
    
    
        // 字符串比较
        String a = "1212";
        String b = "1212";

        if (a == b) {
    
    // true  a==b
            System.out.println("a==b");
        }
        if (a.equals(b)) {
    
    // true  a.equals(b)
            System.out.println("a.equals(b)");
        }

        // StringBuffer 对象比较,由于StringBuffer没有重写Object的equal方法,因此结果出现错误
        StringBuffer c = new StringBuffer("1212");
        StringBuffer d = new StringBuffer("1212");

        if (c == d) {
    
    // false  c != d
            System.out.println("c == d");
        } else {
    
    
            System.out.println("c != d");
        }

        if (c.equals(d)) {
    
     // false 调用了Object类的equal方法
            System.out.println("StringBuffer equal true");
        } else {
    
    
            System.out.println("StringBuffer equal false");
        }
    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_45879198/article/details/117533700