我直接在==中检查了System.out.println运算符以比较字符串引用。我的疑问是,根据``字符串常量池'',两个字符串都将引用池中的同一实例,并且输出为'true',然后为什么第一个输出为'false'。

下面是一个示例代码:

String s1 = "abc";
String s2 = "abc";
System.out.println("s1==s2 is:"+ s1==s2);
System.out.println("s1==s2 with brackets is:"+ (s1==s2));

输出为:
false
s1==s2 with brackets is:true

最佳答案

System.out.println("s1==s2 is:"+ s1==s2);"s1==s2 is:"+ s1s2进行比较,因此返回false。 (s1==s2)为true,因为两者都从String池中获取了它们所引用的实例。

09-10 04:13
查看更多