java中==与equals的区别

在最近做题当中,发现==和equals一直让我傻傻的搞不清楚,因此写这一篇博客,来总结一下
学习的结果。

首先上代码

           Integer i1=9;
           int  i2=9;
           Integer i3=Integer.valueOf(9);
           Integer i4=new Integer(9);
           System.out.println(i1==i2);
           System.out.println(i1==i3);
           System.out.println(i1==i4);
           System.out.println(i1.equals(i4));
结果:
      true
      true
      false
      true

简单的说“==”用于比较两个变量的值的大小,通常用于比较两个基本类型的数据或者两个引用
变量,在上例中,我理解的是java会自动调用自动装卸箱机制将封装类型转成基本数据类型,所以这几个变量的数值i1,i2,i3所对应的内存中数值是相等的,图如下:
这里写图片描述
而equals是Object类的提供的方法之一,equals()方法的是可以被覆盖的,因此,它可以
通过覆盖的方法让它比较数据的内容,例如String类equals方法是用于比较两个独立对象的内容
是否相同,即堆中的内容是否相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值