【发布时间】:2017-01-07 07:56:25
【问题描述】:
我在面试中遇到了如下问题:
String s = "abcde5";
String s1 ="abcde"+"5";
System.out.println(s==s1);
System.out.println(s.equals(s1));
String s4 = "abcd5";
String s3 = "abcd"+s4.length();
System.out.println(s3);
System.out.println(s3.equals(s4));
System.out.println(s3==s4);
我认为“==”的输出将始终为 false,因为使用 + 运算符将创建一个与执行 s4.length 相同的新字符串。但预期的答案是不同的。谁能告诉我为什么 s==s1 给出 true,而 s3==s4 给出 false。
预期的答案是: 真的 真的 abcd5 真的 假的
【问题讨论】:
-
这与字符串实习无关。投票重新开放。