String str = new ("abc"); 应该只创建一个对象,如下程序证明:
public class Test {
public static void main(String[] args){
// test_1();
test_2();
}
public static void test_1(){
String str1 = new String("abc");
String str2 = "abc";
System.out.println(str1==str2);
}
public static void test_2(){
String str1 = "abc";
String str2 = "abc";
System.out.println(str1==str2);
}
}
test_1打印false,说明String str = new ("abc");只创建一个对象,没有在常量池创建对象
test_2打印true,说明str1、str2都执行常量池。 |