String s1 = new String("string") 在 java 中创建两个对象。一个在字符串池中,一个在堆中。现在,如果我在这之后写另一个语句,例如 String s2 =“string”。它会在字符串池中创建另一个对象还是返回前一个对象的引用?
最佳答案
String s2 = "string";
将从字符串池中返回对象。
String s1 = new String("s");
String s2 = "s"; // from pool
String s3 = "s"; // from pool
System.out.println(s1 == s2); // false
System.out.println(s3 == s2); // true
关于java字符串池入口和堆入口机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45037525/