Supposons que je crée une instance de la classe B, qui possède une variable statique x, à laquelle la déclaration de la classe B attribue la valeur 3. Dans la méthode main(), je fais ceci :
B b = new B();
b.x = 7; //allowed to use an instance to set the static member value
Ensuite, b est sérialisé puis désérialisé. Ensuite, la ligne suivante apparaît :
System.out.println ("static: " + b.x);
Quelle est la valeur ? 7 ou 3 ?
Je sais que les variables statiques ne sont pas sérialisées, cependant, puisqu'il n'y a qu'une seule copie du membre statique pour toute la classe, et que la valeur est fixée à 7, devrait-elle être conservée après la dé-sérialisation d'une instance ?