Qui peut expliquer ce qui se passe?
public class MagicFinal {
public static void main(String[] args) {
System.out.println(A.s);
}
}
class A {
static {
System.out.println("class has been loaded");
}
public static final String s = "final";
public static final Integer i = 3;
}
Console :
final
Qu'est-il? Je ne comprends pas pourquoi la classe n'a pas été chargé, je sais que les classes se chargent toujours au premier appel. Champ s
est dans la piscine de la chaîne, je vois que le modificateur final est magique.
Si je supprime final modificateur (public static String s = "final"
) je vais obtenir
Console :
la classe a été chargé
final
Note: j'ai changé de domaine i
: public static final int i = 3;
et de l'afficher dans la console.
J'ai eu la même que dans la Chaîne de situation. Pourquoi?