Disons que je crée une instance de classe B, qui a une variable statique x, affectée d'une valeur de 3 dans la déclaration de classe B. Dans la méthode main(), je le fais:Quelle est la valeur des variables statiques après la désérialisation d'un objet?
B b = new B();
b.x = 7; //allowed to use an instance to set the static member value
Après cela, b est sérialisé, puis désérialisé. Ensuite, la ligne suivante se produit:
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 la classe entière, et que la valeur est définie à 7, devrait-elle être conservée après dé-sérialisation d'une instance?
Pourquoi ne pas simplement l'essayer. Je suppose que cela ne vous prendra pas plus de temps que d'écrire la question. – Buhb
Les statistiques statiques sont une très, très mauvaise idée, de toute façon. –
@Tom, sans parler de les référencer par une instance de B plutôt que la classe elle-même (Bx) –