тимчасове ключове слово в Java

перехідний це модифікатор змінних, який використовується в серіалізація . Під час серіалізації, якщо ми не хочемо зберігати значення певної змінної у файлі, ми використовуємо перехідний ключове слово. Коли стикається JVM перехідний воно ігнорує вихідне значення змінної та зберігає значення за замовчуванням цього типу даних змінної. перехідний ключове слово відіграє важливу роль у відповідності обмеженням безпеки. Є різні приклади з реального життя, коли ми не хочемо зберігати особисті дані у файлі. Ще одне використання перехідний ключовим словом є не серіалізація змінної, значення якої можна обчислити/отримати за допомогою інших серіалізованих об’єктів або системи, таких як вік особи, поточна дата тощо. Практично ми серіалізували лише ті поля, які представляють стан екземпляра, адже серіалізація спрямована на збереження стану об’єкта у файл. Корисна звичка використовувати перехідний 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   }   
перехідні та статичні: Оскільки статичний поля не є частиною стану об’єкта, використання/вплив використання не має перехідний ключове слово зі статичними змінними. Однак помилки компіляції немає. перехідний і остаточний: кінцеві змінні безпосередньо серіалізуються за своїми значеннями, тому немає користі/впливу оголошення кінцевої змінної як перехідний . 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