palavra-chave transitória em Java

transitório é um modificador de variáveis ​​usado em serialização . No momento da serialização, se não quisermos salvar o valor de uma variável específica em um arquivo, usamos transitório palavra-chave. Quando a JVM aparece transitório palavra-chave, ela ignora o valor original da variável e salva o valor padrão desse tipo de dados variável. transitório a palavra-chave desempenha um papel importante para atender às restrições de segurança. Existem vários exemplos da vida real em que não queremos salvar dados privados em arquivo. Outro uso de transitório A palavra-chave não é serializar a variável cujo valor pode ser calculado/derivado usando outros objetos serializados ou sistema, como idade de uma pessoa, data atual, etc. Praticamente serializamos apenas os campos que representam um estado de instância depois que toda a serialização está prestes a salvar o estado de um objeto em um arquivo. É um bom hábito usar transitório 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   }   
transitório e estático: Desde estático campos não fazem parte do estado do objeto, não há uso/impacto de usar transitório palavra-chave com variáveis ​​estáticas. No entanto, não há erro de compilação. transitório e final: variáveis ​​finais são serializadas diretamente por seus valores, portanto não há uso/impacto de declarar a variável final como transitório . 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