ohimenevä avainsana Javassa

ohimenevä on muuttujien muuntaja, jota käytetään sarjoittaminen . Jos emme halua tallentaa tietyn muuttujan arvoa tiedostoon serialisoinnin aikana, käytämme ohimenevä avainsana. Kun JVM törmää ohimenevä avainsana se jättää huomioimatta muuttujan alkuperäisen arvon ja tallentaa kyseisen muuttujan tietotyypin oletusarvon. ohimenevä avainsanalla on tärkeä rooli turvallisuusrajoitusten täyttämisessä. On olemassa useita tosielämän esimerkkejä, joissa emme halua tallentaa yksityisiä tietoja tiedostoon. Toinen käyttö ohimenevä avainsana ei ole serialoida muuttuja, jonka arvo voidaan laskea/johtaa käyttämällä muita serialisoituja objekteja tai järjestelmiä, kuten henkilön ikää nykyinen päivämäärä jne. Käytännössä sarjoimme vain ne kentät, jotka edustavat ilmentymän tilaa, kun kaikki serialisointi on tallentamassa objektin tilaa tiedostoon. Se on hyvä tapa käyttää ohimenevä 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   }   
ohimenevä ja staattinen: Koska staattinen kentät eivät ole osa kohteen tilaa, käytöllä ei ole käyttöä/vaikutusta ohimenevä avainsana staattisilla muuttujilla. Kokoonpanovirhettä ei kuitenkaan ole. ohimenevä ja lopullinen: lopulliset muuttujat sarjoidaan suoraan niiden arvojen perusteella, joten lopullisen muuttujan ilmoittamiselle ei ole käyttöä/vaikutusta ohimenevä . 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