【发布时间】:2012-07-19 18:29:46
【问题描述】:
public class Test {
private static final String str1 = new String("en");
private static Test instance = initInstance();
private static final String str2 = new String("en");
private static final String str3 = "en";
private Test() {
}
public static void main(String[] args) {
}
private static Test initInstance() {
instance = new Test();
System.out.println(str1 + ',' + str2 + ',' + str3);
return instance;
}
}
理论上到处都是静态的,它应该导致“en,en,en”。
结果:“en,null,en”
预期:“en,null,null”(因为我发现静态顺序实际上很重要)
有人能解释一下吗? "en" 和 new String("en") 有什么不同?
【问题讨论】:
-
+1 因为我不知道你可以这样初始化内联...
标签: java string static initialization