mot-clé transitoire en Java

transitoire est un modificateur de variables utilisé dans sérialisation . Au moment de la sérialisation, si nous ne voulons pas enregistrer la valeur d'une variable particulière dans un fichier, nous utilisons transitoire mot-clé. Quand JVM apparaît transitoire mot-clé, il ignore la valeur d'origine de la variable et enregistre la valeur par défaut de ce type de données variable. transitoire Le mot-clé joue un rôle important pour répondre aux contraintes de sécurité. Il existe divers exemples concrets dans lesquels nous ne souhaitons pas enregistrer de données privées dans un fichier. Une autre utilisation de transitoire Le mot-clé n'est pas de sérialiser la variable dont la valeur peut être calculée/dérivée à l'aide d'autres objets ou systèmes sérialisés tels que l'âge d'une personne, la date actuelle, etc. En pratique, nous n'avons sérialisé que les champs qui représentent un état d'instance après que toute la sérialisation soit sur le point de sauvegarder l'état d'un objet dans un fichier. C'est une bonne habitude à utiliser transitoire keyword with private confidential fields of a class during serialization. Java
   // A sample class that uses transient keyword to   // skip their serialization.   class   Test     implements     Serializable   {      // Making password transient for security      private     transient     String     password  ;      // Making age transient as age is auto-      // computable from DOB and current date.      transient     int     age  ;      // serialize other fields      private     String     username       email  ;      Date     dob  ;      // other code   }   
transitoire et statique : Depuis statique les champs ne font pas partie de l'état de l'objet, il n'y a aucune utilisation/impact de l'utilisation transitoire mot-clé avec des variables statiques. Il n'y a cependant aucune erreur de compilation. transitoire et final : les variables finales sont directement sérialisées par leurs valeurs, il n'y a donc aucune utilité/impact de déclarer la variable finale comme transitoire . There is no compile-time error though. Java
   // Java program to demonstrate transient keyword   // Filename Test.java   import     java.io.*  ;   class   Test     implements     Serializable   {      // Normal variables      int     i     =     10       j     =     20  ;      // Transient variables      transient     int     k     =     30  ;      // Use of transient has no impact here      transient     static     int     l     =     40  ;      transient     final     int     m     =     50  ;      public     static     void     main  (  String  []     args  )     throws     Exception      {      Test     input     =     new     Test  ();      // serialization      FileOutputStream     fos     =     new     FileOutputStream  (  'abc.txt'  );      ObjectOutputStream     oos     =     new     ObjectOutputStream  (  fos  );      oos  .  writeObject  (  input  );      // de-serialization      FileInputStream     fis     =     new     FileInputStream  (  'abc.txt'  );      ObjectInputStream     ois     =     new     ObjectInputStream  (  fis  );      Test     output     =     (  Test  )  ois  .  readObject  ();      System  .  out  .  println  (  'i = '     +     output  .  i  );      System  .  out  .  println  (  'j = '     +     output  .  j  );      System  .  out  .  println  (  'k = '     +     output  .  k  );      System  .  out  .  println  (  'l = '     +     output  .  l  );         System  .  out  .  println  (  'm = '     +     output  .  m  );      }   }   
Output :
i = 10 j = 20 k = 0 l = 40 m = 50