我无法理解下面的输出:
System.out.println(s1.equals(s2)+"a"); ->truea
System.out.println(s1==s2+"a"); ->false
s1& s2被声明为相同的字符串“abc”,即String s1="abc"; String s2="abc";
答案 0 :(得分:6)
s1==s2+"a"
与
相同s1==(s2+"a")
因为==
的{{3}}低于+
。
答案 1 :(得分:3)
根据the Oracle documentation, +
运算符的优先级高于equality
。{/ p>
答案 2 :(得分:-3)
因为s1是一个字符串对象,而s2是另一个字符串对象。它们有不同的内存地址。