当前位置:   article > 正文

浅谈java中string字符串比较。_java如何对比两个string差异

java如何对比两个string差异

string是引用数据类型 “使用==比较”时的情况

当我们使用“==”进行比较时;引用数据类型比较的是地址值。new出来地对象会开辟在堆中;所以他们地址不相等。

  1. public class uesfanyue {public static void main(String[] args){
  2. String s=new String("123");
  3. String ss=new String("123");
  4. boolean b=s==ss;
  5. System.out.println(b);//false
  6. }
  7. }

使用equals比较

当我们使用equals比较时就可以比较字符串里面的内容

  1. public class uesfanyue {public static void main(String[] args){
  2. String s=new String("123");
  3. String ss=new String("123");
  4. boolean b=s==ss;
  5. System.out.println(b);//false
  6. b=s.equals(ss);
  7. System.out.println(b);//true;
  8. }
  9. }

string直接赋值的情况

当使用string s=xxx;时,此时的值会保存在串池中;当另一个string ss调用时会直接去串池中找;

故此时它们的值是一样的。

  1. String z="123";
  2. String zz="123";
  3. boolean c=z==zz;//true;
  4. System.out.println(c);
注意拼接字符串时比较的情况

当拼接字符串时有变量时;会新建一个对象在串池中;

当没有变量时;直接在串池中寻找。

  1. String s="1234";
  2. String d="123";
  3. String c=d+"4";
  4. String v="123"+"4";
  5. boolean a= s==c;//false;
  6. boolean n= v==s;//true;

注:上述中串池为堆内存中的一部分,专门用来存放直接赋值的字符串;

最后月月建议大伙在使用string时直接赋值使用最好。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/594252
推荐阅读
相关标签
  

闽ICP备14008679号