přechodné klíčové slovo v Javě

přechodný je modifikátor proměnných používaný v serializace . V době serializace, pokud nechceme uložit hodnotu konkrétní proměnné do souboru, použijeme přechodný klíčové slovo. Když narazí JVM přechodný ignoruje původní hodnotu proměnné a uloží výchozí hodnotu tohoto datového typu proměnné. přechodný Klíčové slovo hraje důležitou roli při splnění bezpečnostních omezení. Existují různé příklady ze skutečného života, kdy nechceme ukládat soukromá data do souboru. Další použití přechodný klíčové slovo není serializovat proměnnou, jejíž hodnotu lze vypočítat/odvodit pomocí jiných serializovaných objektů nebo systému, jako je věk osoby, aktuální datum atd. Prakticky jsme serializovali pouze ta pole, která představují stav instance poté, co se celá serializace chystá uložit stav objektu do souboru. Je dobrým zvykem používat přechodný 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   }   
přechodné a statické: Od statický pole nejsou součástí stavu objektu, nemá využití/dopad použití přechodný klíčové slovo se statickými proměnnými. Nedochází však k chybě při kompilaci. přechodné a konečné: konečné proměnné jsou přímo serializovány svými hodnotami, takže deklarování konečné proměnné jako nemá žádný dopad/dopad přechodný . 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