2021-06-26

一、==运算符的使用

1.基本数据类型变量:比较值是否相等,不一定类型要相同,存在自动类型提升

public void test1(){
    int i=10;
    int j=10;
    double k=10.0;
    System.out.println(i==j);//true
    System.out.println(i==k);//int自动类型提升为double,结果仍为true

    boolean b=true;
    //System.out.println(b==i);  编译报错

    char c=10; //字符的ASCII值
    System.out.println(i==c);//true
    char c1='A';
    char c2=65;
    System.out.println(c1==c2);//true
}

2.引用数据类型变量:比较两个对象的地址是否相同,即两个引用是否指向同一个对象实体

public void test2(){
    Customer cust1=new Customer("tom",21);
    Customer cust2=new Customer("tom",21);
    System.out.println(cust1==cust2); //false,两个对象地址不同

    String str1=new String("lxx");//String是一个类
    String str2=new String("lxx");
    System.out.println(str1==str2);//false

    String str3="lxx";
    String str4="lxx";
    System.out.println(str3==str4); //true,两个引用指向同一个对象
}

二、equals()方法

1.这是一个方法,而不是一个运算符

2.不能用于基本数据类型,只适用于引用数据类型

3.Object类中equals()方法的定义:

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

Object类中equals()和==作用相同:比较两个对象的地址是否相同

4.像String、Date、File、包装类等都重写了Object类中的equals()方法,重写以后,比较的不是两个对象的地址

是否相同,而是比较两个对象的“实体内容”(属性)是否相同

public void test3(){
        Customer cust1=new Customer("tom",21);
        Customer cust2=new Customer("tom",21);
        System.out.println(cust1.equals(cust2)); //false,比较两个对象的地址

        String str1=new String("lxx");
        String str2=new String("lxx");
        System.out.println(str1.equals(str2));//true,比较两个对象的实体内容

        Date date1=new Date(32432525324L);
        Date date2=new Date(32432525324L);
        System.out.println(date1.equals(date2));//true,比较两个对象的实体内容
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值