sérialisation
En java, tout objet est sérialisable, c'est à dire transformable en flux d'octets, en vue d'enregistrement sur disque dur, ou de passage sur le réseau, s'il implémente l'interface java.io.serializable.
Dire qu'un objet est sérialisable ets équivalent à dire qu'il est transportable, que ce soit vers un disque dur, ou vers le réseau etc.
L'insertion du code implements java.io.Serializable en tête de la classe suffit à rendre celle-ci sérialisable.
On en arrive à l'objet de cet article, la signification et l'utilisation éclairée du mot clé transient.
Lorsqu'on sérialise un objet, on peut souhaiter que certaines données sensibles, ou inutiles et lourdes (variables de calcul intermédiaires) ne soient pas prise en compte, (équivalent : ne persistent pas) on les déclare alors avec le mot clé transient :

transient String monMotDePasse;
transient Double monTableauDeVariablesIntermediairesInutiles;

Cette déclaration spéciale implique que ces données ne seront pas prises en compte dans le processus de sérialisation, et donc ne seront pas récupérable après un enregistrement sur disque ou un passage sur le réseau.


  • Pour en savoir plus, JM Doudoux et la serialisation en Java, un exemple complet portant sur un bean sérialisable, que l'on fait persister sur le disque, puis que l'on recrée à partir du fichier de persistence.
  • Un piège classique lors de l'utilisation de données transientes.