Java == 行为模棱两可

标签 java

我在 Facebook 群组中遇到了这个问题。我知道我应该使用 equals() 方法,但我想知道为什么会这样

class Main
{
    public static void main (String[] args)
    {
        String s1="abc:5";
        String s2="abc:5";
        System.out.println(s1==s2);
        System.out.println("s1 == s2 " + s1==s2);
    }
}

输出

true
false

最佳答案

这是由于运算符的优先级。 '+' 的优先级高于 ==。您实际上是在将 ("s1 == s2"+ s1) 与 s2 进行比较。

http://introcs.cs.princeton.edu/java/11precedence/

关于Java == 行为模棱两可,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20055341/

相关文章:

java - 我应该为 java 使用什么音频格式?

Java:如何对在方法范围内创建和操作文件的方法进行单元测试?

java - 如何将文本文件中的字符串分成不同的数组(java)

java - java中二进制字符串的异或

java - 多线程 Web 服务器如何影响 Clojure 程序?

java - 如何在java中为JTextField制作坐标格式

java - JComponent 绘制前高度

java - 中介对象如何工作?它背后的想法是什么?

java - oAuth 2.0 用于 Google Apps 审核 api

java - Spring Boot Job Scheduler fixedDelay 和 cron