prechodné kľúčové slovo v jazyku Java

prechodný je modifikátor premenných používaný v serializácia . Ak v čase serializácie nechceme uložiť hodnotu konkrétnej premennej do súboru, použijeme prechodný kľúčové slovo. Keď narazí JVM prechodný kľúčové slovo ignoruje pôvodnú hodnotu premennej a uloží predvolenú hodnotu tohto dátového typu premennej. prechodný Kľúčové slovo hrá dôležitú úlohu pri dodržiavaní bezpečnostných obmedzení. Existujú rôzne príklady zo skutočného života, keď nechceme ukladať súkromné ​​údaje do súboru. Ďalšie využitie prechodný kľúčové slovo nie je serializovať premennú, ktorej hodnotu možno vypočítať/odvodiť pomocou iných serializovaných objektov alebo systému, ako je vek osoby, aktuálny dátum atď. Prakticky sme serializovali iba tie polia, ktoré predstavujú stav inštancie po tom, čo sa celá serializácia chystá uložiť stav objektu do súboru. Je dobrým zvykom používať prechodný 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   }   
prechodné a statické: Od r statické polia nie su sucastou stavu objektu nema ziadne vyuzitie/dopad pouzivania prechodný kľúčové slovo so statickými premennými. Nedochádza však k chybe pri kompilácii. prechodné a konečné: finálne premenné sú priamo serializované svojimi hodnotami, takže deklarovanie finálnej premennej ako nemá žiadne použitie/vplyv prechodný . 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