JAVA中判断两个字符串是否相等

 项目中遇到的问题,记录一下,当做提醒。

==比较引用,equals 比较值

1、java中字符串的比较:==

我们经常习惯性的写上if(str1==str2),这种写法在java中可能会带来问题

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

    那么a==b将返回true。因为在java中字符串的值是不可改变的,相同的字符串在内存中只会存

 一份,所以a和b指向的是同一个对象;

String a=new String("abc"); String b=new String("abc");

   那么a==b将返回false,此时a和b指向不同的对象。

 2、用equals方法比较的是字符串的内容是否相同

String a=new String("abc"); 
String b=new String("abc");
 a.equals(b);

将返回true。

注意:将常量放置在左侧,可以避免左侧undefined异常

("1001").equals(params.get("approveResult"));

总结:

1.  ==是两边的完完全全是一致的,才返回true,否则返回false;

2.  equal是判断两个对象中的内容是否一致;

3.使用“=”赋值时,如果内存中已经有这个字符串,就会直接将其地址给这个变量,不会产生新的字符串;

4.使用“+”或者“concat”方法拼接字符串的时候,会创建一个新的字符串,占用新的内存空间,因此使用“==”判断时返回false;

参考:https://blog.csdn.net/weixin_42350212/article/details/80768041

           https://www.jianshu.com/p/3cd1912211d4

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值