String s1 = new String(" string")在String池中的java.one中创建两个对象,在堆中创建一个对象。现在,如果我在此之后写另一个语句,如String s2 =" string"。它会在String池中创建另一个对象还是返回上一个对象的引用?
答案 0 :(得分:2)
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