pārejošs atslēgvārds Java valodā

pārejošs ir mainīgo modifikators, ko izmanto serializācija . Ja serializācijas laikā nevēlamies saglabāt failā noteikta mainīgā vērtību, mēs izmantojam pārejošs atslēgvārds. Kad JVM nāk pāri pārejošs atslēgvārds tas ignorē mainīgā sākotnējo vērtību un saglabā šī mainīgā datu tipa noklusējuma vērtību. pārejošs atslēgvārdam ir svarīga loma drošības ierobežojumu ievērošanā. Ir dažādi reālās dzīves piemēri, kad mēs nevēlamies saglabāt privātos datus failā. Vēl viens lietojums pārejošs atslēgvārds nav serializēt mainīgo, kura vērtību var aprēķināt/atvasināt, izmantojot citus serializētus objektus vai sistēmu, piemēram, personas vecumu pašreizējais datums utt. Praktiski mēs serializējām tikai tos laukus, kas attēlo gadījuma stāvokli pēc tam, kad serializācija ir gatava objekta stāvokļa saglabāšanai failā. Tas ir labs ieradums lietot pārejošs 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ārejošs un statisks: Kopš statisks lauki neietilpst objekta stāvoklī, nav izmantošanas/izmantošanas ietekmes pārejošs atslēgvārds ar statiskiem mainīgajiem. Tomēr kompilācijas kļūdu nav. pārejošs un galīgs: galīgie mainīgie tiek tieši serializēti pēc to vērtībām, tāpēc galīgā mainīgā deklarēšana kā pārejošs . 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