你能解释一下为什么输出是false代替abcd abc false代码:public class StringDemo{ public static void main(String [] args){ String s1 = "abc"; String s2 = s1; s1+="d"; System.out.println(s1+ " "+ s2 +" "+ s1==s2); //false }}
1 回答
MMTTMM
TA贡献1869条经验 获得超4个赞
它打印,因为相对优先级的错误+
和==
。+
具有更高的优先级,因此它等效于:
System.out.println((s1+ " "+ s2 +" "+ s1)==s2);
因此to的参数System.out.println
是布尔值,而不是字符串。
添加括号:
System.out.println(s1+ " "+ s2 +" "+ (s1==s2));
添加回答
举报
0/150
提交
取消