【问题标题】:Difference between == and .equals()? [duplicate]== 和 .equals() 之间的区别? [复制]
【发布时间】:2013-04-06 15:43:07
【问题描述】:

我现在正在学习 Java。当我使用==.equals() 进行字符串比较时,我得到了不同的结果。但是没有编译错误。谁能解释一下这两种操作的区别?

【问题讨论】:

    标签: java string


    【解决方案1】:
    • s1 == s2 比较字符串references;这很少是你想要的。
    • s1.equals(s2) 比较两个字符序列;这几乎总是你想要的。

    【讨论】:

      【解决方案2】:

      == 测试引用是否相等。

      .equals() 测试值相等。

      例子:

      String fooString1 = new String("Java");
      String fooString2 = new String("Java");
      
      // false
      fooString1 == fooString2;
      
      // true
      fooString1.equals(fooString2);
      

      注意:

      == 处理空字符串值。

      来自空字符串的.equals() 将导致Null Pointer Exception

      【讨论】:

      • 谢谢 Gokul。这很有用。
      【解决方案3】:

      当 == 用于 String 之间的比较时,它会检查对象的引用。但是当使用 equals 时,它实际上会检查字符串的内容。比如

        String a = new String("ab");
        String b = new String("ab");
        if(a==b) ///will return false because both objects are stored on the different locations in memory
      
         if(a.equals(b)) // will return true because it will check the contents of the String
      

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 2014-10-09
        • 1970-01-01
        • 2010-10-23
        • 1970-01-01
        • 2022-12-11
        • 1970-01-01
        • 2014-11-01
        • 2013-07-01
        • 1970-01-01
        相关资源
        最近更新 更多