equals和==区别

初始印象:很多人都认为==是比较地址,equals是比较内容,这样是有点不准确的:

在Object中,equals里面实际就是用做比较的
Object中的equals方法,其实就只是进行了== 的判断
再看String中的equals方法,先是比较了地址,如果相等就返回true,如果不相等就再比较内容,如果内容相等还是返回true;
在这里插入图片描述
原因:基本数据类型是直接存储在栈空间;引用数据类型是分开存,栈存地址,堆存值;
在这里插入图片描述
用 == 做比较的时候,其实比较的是栈空间里面的东西,所以基本数据类型用 == 是可以的。
但是引用数据类型使用
做比较的时候,比较的是栈空间的地址,因为地址不同就会返回false;如上面的两个String,所以引用数据类型要使用equals进行比较;

在这里插入图片描述

另有小知识:

//StringBuilder拼接字符串
StringBuilder str1 = new StringBuilder();
str1.append(word1);

//String拼接字符串可以使用concat
String str1 = "";
str1 = str1.concat(word1);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值