java == 和 equals()方法的区别

java == 和 equals()方法的区别

一、==

        1、可以使用于基本数据类型变量和引用数据类型变量中
        2、如果比较的是基本数据类型变量,则比较的是变量中的值是否相等。(类型可以不相同)
        3、如果比较的是引用数据类型变量,则比较的是两个对象的内存地址是否相等。

//==如果用于基本数据类型 比较的是两个变量的值是否相等
int a = 10;
int b = 10;
char c = 'a';
int d = 97;
double e = 10.0;

System.out.println(a == b);//true
System.out.println(c == d);//true
System.out.println(a == e);//true
//==如果用于引用数据类型 比较的是两个对象的内存地址值是否相等
User tom1 = new User("tom", 21);
User tom2 = new User("tom", 21);
String tc1 = new String("tc");
String tc2 = new String("tc");

System.out.println(tom1 == tom2);//false
System.out.println(tc1 == tc2);//false

二、equals()方法

        1、equals()方法是属于java.lang.Object类里面的方法,只能用于引用数据类型;如果我们自定义的类没有重写这个方法,就会调Object类里面的equals()方法,由Object类里面的equals()方法可知,底层就是调用的 ==, 即判断两个对象的地址值是否相等。通常情况下,自定义的类重写equals()方法的话,会比较类中相应属性是否都相等。像String,Date,File等包装类都重写了equals()方法,比较的就是值是否相同。

//Object
public boolean equals(Object obj) {
        return (this == obj);
    }
User tom1 = new User("tom", 21);
User tom2 = new User("tom", 21);
String tc1 = new String("tc");
String tc2 = new String("tc");

System.out.println(tc1.equals(tc2));//truee
//没有重写equals()
System.out.println(tom1.equals(tom2));//false
//重写equals()后
System.out.println(tom1.equals(tom2));//true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值