equals与==的区别

1、对字符串变量来说:==比较两个对象的地址是否一致,equals比较两个对象的值.
String s3 = “ad”, s4 = “ad”
String s1 = new String(“ad”);
String s2 = new String(“ad”);
s1 == s2 //false 因为两个对象存放的地址不一致
s1.equals(s2) // true 因为两个对象的值都是”abc”
2、对于基本数据类型,只能用==判断,不能用equals(),而对于基本数据类型的封装类或者其他自定义类(没有重写equals方法)来说,==比较的是地址,equals()比较的是内容
3、s3 == s4 // true,因为s3和s4指向的都是同一块内存地址
4、 StringBuffer s5 = new StringBuffer(“a”) ;
StringBuffer s6 = new StringBuffer(“a”) ;
s5.equals(s6) // false ,因为StringBuffer没有重写equals()方法,比较的还是内存地址,显然两个对象内存地址是不一样的。

如上面可知我们需要的这些,主要是第二条,对于基本类型的(int)之类的只能使用==判断,对于自定义出来的Integer这些类不能使用(在int里面那个文章有详细说明过)

其中第二条里面說基本类型只能使用 == 判断是对的,因为基本数据类型没有这个equals这个方法。然后第一条的String呢在安卓的包里面能够看到String这个类。而且里面包含了equals这个方法。基本上面使用基本类型的直接使用 == 判断就好。在java里面有类的数据类型要考虑到第一条的。比较的是值还是比较地址是否一样?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值