tranziens kulcsszó a Java nyelven

átmeneti -ban használt változó módosító sorozatosítás . Ha a szerializáláskor nem szeretnénk egy adott változó értékét elmenteni egy fájlba, akkor a átmeneti kulcsszó. Amikor JVM találkozik átmeneti A kulcsszó figyelmen kívül hagyja a változó eredeti értékét, és elmenti az adott változó adattípusának alapértelmezett értékét. átmeneti kulcsszó fontos szerepet játszik a biztonsági korlátozások teljesítésében. Számos valós példa van arra, amikor nem akarunk személyes adatokat fájlba menteni. Egy másik felhasználása átmeneti A kulcsszó az, hogy ne szerializáljuk azt a változót, amelynek értéke más szerializált objektumokkal vagy rendszerekkel számítható/levezethető, mint például egy személy életkora aktuális dátum stb. Gyakorlatilag csak azokat a mezőket szerializáltuk, amelyek a példány állapotát reprezentálják, miután minden szerializálás az objektum állapotának fájlba mentését jelenti. Jó szokás használni átmeneti 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   }   
tranziens és statikus: Mivel statikus a mezők nem részei az objektum állapotának, a használatnak nincs haszna/hatása átmeneti kulcsszó statikus változókkal. Összeállítási hiba azonban nincs. átmeneti és végleges: a végső változókat közvetlenül sorba rendezik az értékük alapján, így nincs értelme/hatása a végső változó deklarálása átmeneti . 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