public class StringLiterals {
public static void main(String[] args) {
String s1="This is ";
s1=s1+"my book";
String s2="This is my book";
System.out.println(s1==s2);
}
}
O/P:错误
期望 O/P:真
最佳答案
也许这有助于理清思路。
String s1 = "This is";
s1 = s1 + " my book"; // Note the space
String s2 = "This is my book";
String s3 = "This is my book";
System.out.println(s1==s2); // False
System.out.println(s2==s3); // True
“只有当字符串被显式地驻留或类使用文字时,它们才会被放入池中。”因此,您不能使用 + 运算符连接字符串并期望将其放入字符串常量池中。
关于java - 常量池中两个String的引用id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21199878/