[英]Why System.out.println() doesn't print the string
public class Main {
public static void main(String[] args) {
String str1 = new String("Haseeb");
String str2 = new String("Haseeb");
System.out.println("str1==str2" + str1==str2 );
}
}
==
运算符的优先级低于+
,因此+
首先执行。
"str1==str2" + str1
产生"str1==str2Haseeb"
。
然后==
执行,并且"str1==str2Haseeb"
与"Haseeb"
( str2
)不是同一对象,因此打印false
。
您可以添加括号以阐明所需的操作顺序。
System.out.println("str1==str2 " + (str1==str2) );
这应该显示str1==str2 false
。
(a + b == c)
求值为(a + b) == c
,而不是a + (b==c)
,因为+
优先级高于==
。 否则算术将不起作用。
您所拥有的等同于:
System.out.println( ("str1==str2" + str1) ==str2 );
并且("str1==str2" + str1)
不等于str2
,因此您输出false
。
您可能的意思是:
System.out.println("str1==str2 " + (str1==str2));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.