带你认清==、equals的区别,

你真的懂== 、equals么?

大家都知道比较String的内容时,就用equals,但你知道么?时因为equals重写了Object的equals的方法,Object的equals比较的是地址,String类重写了比较的为内容。所以你一直认为的equals比较的是内容时不对的。
大家有还知道if有时你也用来比较String,比如String s1=“a”; String s2=“a”; if(s1s2){System.out.println(“也是可以输出的”)};这里其实不是比较的内容,再创建s1时"a"的地址就存到了常量池,当你在创建s2=“a”;时引用的地址就是s1的所以if(s1s2)是可以运行的就是true。
上面的解释啰嗦给新手看的,你若学习了几天了可以直接看代码

public class test {
//==  equals的区别用法
	public static void main(String[] args) {
		// TODO Auto-generated method stub
      String s1="a";
      String s2="a";
     System.out.println(s1.equals(s2)); //这里比较的就是内容,因为String类重写了Object的equals方法不再比较地址,输出true
     if(s1==s2) System.out.println("相等的");//这里比较的还是地址,s1,s2使用的同一个一地址,因为s1创建时就地址存到了常量池,再次创建"a"的对象时就会直接引用常量池有的地址
	}

}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值