paraula clau transitòria a Java

transitori és un modificador de variables utilitzat a serialització . En el moment de la serialització, si no volem desar el valor d'una variable en particular en un fitxer, l'utilitzem transitori paraula clau. Quan apareix JVM transitori paraula clau ignora el valor original de la variable i desa el valor predeterminat d'aquest tipus de dades variable. transitori La paraula clau té un paper important per complir amb les limitacions de seguretat. Hi ha diversos exemples de la vida real en què no volem desar dades privades al fitxer. Un altre ús de transitori La paraula clau no és serialitzar la variable el valor de la qual es pot calcular/derivar utilitzant altres objectes o sistema serialitzats, com ara l'edat d'una persona, la data actual, etc. Pràcticament només hem serialitzat els camps que representen un estat d'instància després que tota la serialització estigui a punt de desar l'estat d'un objecte en un fitxer. És un bon hàbit d'utilitzar transitori 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   }   
transitori i estàtic: Des de estàtica els camps no formen part de l'estat de l'objecte, no hi ha ús/impacte de l'ús transitori paraula clau amb variables estàtiques. Tanmateix, no hi ha cap error de compilació. transitori i final: les variables finals es serialitzen directament pels seus valors, de manera que no hi ha cap ús/impacte de declarar la variable final com transitori . 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