论“==”和·equals的全面比较


import java.util.Objects;

public class Test {
    public static void main(String[] args) {
        System.out.println("1 == 1的结果为:"+(1 == 1));
        System.out.println("\"1\".equals(\"1\")的结果为:"+"1".equals("1"));
        System.out.println("\"1\".equals(1)的结果为:"+"1".equals(1));
        People p1 = new People();
        People p2 = new People();
        p1.setName("aa");
        p2.setName("aa");
        String p1Name = p1.getName();
        String p2Name = p2.getName();
        System.out.println("p1 == p2的结果为:"+(p1 == p2));//false
        System.out.println("p1.equals(p2)的结果为:"+p1.equals(p2));//false

        System.out.println("p1Name.equals(p2Name)的结果为:"+p1Name.equals(p2Name));//true
        System.out.println("p1Name == p2Name的结果为:"+(p1Name == p2Name));//true

        System.out.println("==================");
        test();
    }


    public static void test(){
        Integer integer1 = 1;
        Integer integer2 = 1;
        int i = 1;
        System.out.println("integer1 == i的结果为:"+(integer1 == i));
        System.out.println("integer1 == integer2的结果为:"+(integer1 == integer2));
        System.out.println("integer2 == i的结果为:"+(integer2 == i));

        System.out.println("integer1.equals(i)的结果为:"+integer1.equals(i));
        System.out.println("integer1.equals(integer2)的结果为:"+integer1.equals(integer2));
        System.out.println("integer2.equals(i)的结果为:"+integer2.equals(i));


    }
}




class People{

    private Integer age;
    private String name;

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }



    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        People people = (People) o;
        return Objects.equals(age, people.age) &&
                Objects.equals(name, people.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(age, name);
    }
}

People类重写前结果:
在这里插入图片描述People类重写后结果:
在这里插入图片描述int和Integer的比较:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值