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;
}
}
Teóricamente con la estática de todo el mundo debería dar lugar a "en, en, en".Java - extraño comportamiento estático String - nueva cadena ("XXX") vs "xxx"
Resultado: "es, nula, en"
esperado: "es, null, null" (desde que descubrí el fin estática realmente importa)
alguien puede explicar esto? ¿Qué tan diferente es "en" y el nuevo String ("en")?
+1 porque no tenía idea de que podría inicializar en línea así ... – Izkata