cuvânt cheie tranzitoriu în Java

tranzitoriu este un modificator de variabile folosit în serializare . În momentul serializării, dacă nu dorim să salvăm valoarea unei anumite variabile într-un fișier, atunci folosim tranzitoriu cuvânt cheie. Când apare JVM tranzitoriu cuvântul cheie ignoră valoarea originală a variabilei și salvează valoarea implicită a acelui tip de date variabile. tranzitoriu cuvântul cheie joacă un rol important pentru a îndeplini constrângerile de securitate. Există diverse exemple din viața reală în care nu dorim să salvăm date private în fișier. O altă utilizare a tranzitoriu cuvântul cheie nu este să serializeze variabila a cărei valoare poate fi calculată/derivată folosind alte obiecte serializate sau sistem, cum ar fi vârsta unei persoane, data curentă etc. Practic, am serializat doar acele câmpuri care reprezintă o stare de instanță după ce serializarea este pe cale să salveze starea unui obiect într-un fișier. Este un obicei bun de folosit tranzitoriu 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   }   
tranzitoriu și static: Din moment ce static câmpurile nu fac parte din starea obiectului, nu există nicio utilizare/impact al utilizării tranzitoriu cuvânt cheie cu variabile statice. Cu toate acestea, nu există nicio eroare de compilare. tranzitoriu si final: variabilele finale sunt serializate direct după valorile lor, astfel încât nu există nicio utilizare/impact al declararii variabilei finale ca tranzitoriu . 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