首页 > 其他 > 详细

equals和==

时间:2021-06-30 17:57:02      阅读:23      评论:0      收藏:0      [点我收藏+]

首先,在Object中,==和equals没有区别。

举例:

/**
 * Students类(Object)
 * 
 * @author zhdzb
 *
 */
class Students {

    String name;
    int age;
    char sex;

    public Students(String name, int age, char sex) {
        super();
        this.name = name;
        this.age = age;
        this.sex = sex;
    }
}

public class Test {

    public static void main(String[] args) {

        // s1和s2是两个不同的对象
        Students s1 = new Students("张三", 20, ‘男‘);
        Students s2 = new Students("张三", 20, ‘男‘);

        boolean b1 = s1 == s2;
        boolean b2 = s1.equals(s2);

        System.out.println("s1 == s2:" + b1);
        System.out.println("s1.equals(s2):" + b2);
    }
}

内存图如下:

技术分享图片

 执行结果:

技术分享图片

 即在不重写equals()方法的情况下,两种比较方式相同。

在String中,equals()得到了重写,当使用==时,依旧比较两个值的地址是否相同,但是使用equals()方法则是一次比较String中的每个char是否相同。

举例:

public class Test {

    public static void main(String[] args) {

        // s1和s2是两个不同的对象,但是內容一样
        String s1 = new String("Hello");
        String s2 = new String("Hello");

        boolean b1 = s1 == s2;
        boolean b2 = s1.equals(s2);

        System.out.println("s1 == s2:" + b1);
        System.out.println("s1.equals(s2):" + b2);
    }
}

 

内存图:

技术分享图片

执行结果:

技术分享图片

equals和==

原文:https://www.cnblogs.com/yukinon/p/14953999.html

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