不要误导初学者
String a = "";
和 String a = new String(""); 的效果并不相同。
前者是在编译时期确定一个字符串对象,在实际运行时,JVM会在内存的常量池中创建对象,然后所有的编译期可确定内容的字符串,只要是内容相同的,就全部指向同一个对象,以节省内存;而后者,是在运行时创建一个对象。
you can test:
String a = "";
String b = "";
String x = new String("");
String y = new String("");
System.out.println(a == b);
System.out.println(x == y);
System.out.println(a == x);[/quote]
嗯 那应该是相当于 “”是
String t=new String("");
String a =t;
String b =t;
String x = new String("");
String y = new String("");
是吧 奇怪的编译。。。不过节省了空间