java equals() 与‘==’区别

java中数据类型有基本类型和引用类型。

‘==’如果比较基本类型,直接比较值,值相等就返回true
‘==’如果比较引用类型,比较的是虚地址,不是同一个对象肯定不可能相等,就算值相同也是false

equals()方法是Object中的一个方法,基本类型无法调用此方法,他比较的也是对象的虚地址,但是很多类中都对equals方法进行了重写

比如String类重写了equals()方法,比较的是字符串的值,也就是说如果两个String类型的字符串如果值相同,那么他们比较就返回true

下面是一些实例:

        String a = "a";
        String b = "a";

        String c = new String("a");
        String d = new String ("a");

        System.out.println(a == b);
        System.out.println(a.equals(b));
        System.out.println(c == d);
        System.out.println(c.equals(d));

        Integer e = 14;
        Integer f = 14;

        System.out.println(e == f);
        System.out.println(e.equals(f));

        int g = 1;
        int h = 1;

        System.out.println(g == h);
打印结果是:
            true//jvm有一个常量池,a创建的时候先去常量池里找有没有"a"这个常亮,有的话就直接拿来用,没有
            就新建一个,a创建之后常量池里就有"a"了,b创建的时候先去常量池里找,有的话就直接拿来用,所以他
            俩指向的是同一个对象,虚地址相同,因此返回true
            true//String类重写了equals方法,比较的是字符串的值,因此返回true
            false//c,d都是new出来的,并不是从常量池拿的,不是一个对象,因此返回false
            true//跟第二个true同理
            true//同理
            true//同理
            true//基本类型就不用说了吧(有人可能会问,怎么没equals,基本类型能有equals方法吗,哈哈)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值