Java'da geçici anahtar kelime

geçici kullanılan bir değişken değiştiricidir serileştirme . Serileştirme sırasında belirli bir değişkenin değerini bir dosyaya kaydetmek istemiyorsak o zaman şunu kullanırız: geçici anahtar kelime. JVM karşılaştığında geçici anahtar kelimeyi kullanarak değişkenin orijinal değerini yok sayar ve bu değişken veri türünün varsayılan değerini kaydeder. geçici anahtar kelime güvenlik kısıtlamalarını karşılamak için önemli bir rol oynar. Özel verileri dosyaya kaydetmek istemediğimiz çeşitli gerçek hayattan örnekler vardır. Başka bir kullanımı geçici anahtar kelime, değeri diğer serileştirilmiş nesneler veya bir kişinin yaşı, geçerli tarih vb. gibi sistem kullanılarak hesaplanabilen/türetilebilen değişkeni serileştirmek değildir. Pratik olarak, tüm serileştirme tamamen bir nesnenin durumunu bir dosyaya kaydetmek üzereyken, yalnızca bir örneğin durumunu temsil eden alanları serileştirdik. Kullanmak iyi bir alışkanlıktır geçici 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   }   
geçici ve statik: O zamandan beri statik alanlar nesnenin durumunun bir parçası değildir, kullanmanın hiçbir faydası/etkisi yoktur geçici Statik değişkenlere sahip anahtar kelime. Ancak derleme hatası yok. geçici ve nihai: final değişkenleri doğrudan değerlerine göre serileştirilir, dolayısıyla final değişkenini şu şekilde bildirmenin hiçbir faydası/etkisi yoktur. geçici . 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