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" и новой строкой ( "en" )?