parola chiave transitoria in Java

transitorio è un modificatore di variabili utilizzato in serializzazione . Al momento della serializzazione, se non vogliamo salvare il valore di una particolare variabile in un file, utilizziamo transitorio parola chiave. Quando JVM si imbatte transitorio parola chiave ignora il valore originale della variabile e salva il valore predefinito di quel tipo di dati variabile. transitorio La parola chiave gioca un ruolo importante per soddisfare i vincoli di sicurezza. Esistono vari esempi di vita reale in cui non vogliamo salvare i dati privati ​​in un file. Un altro uso di transitorio La parola chiave non è serializzare la variabile il cui valore può essere calcolato/derivato utilizzando altri oggetti o sistemi serializzati come l'età di una persona, la data corrente ecc. In pratica abbiamo serializzato solo quei campi che rappresentano uno stato di istanza dopo che tutta la serializzazione consiste nel salvare lo stato di un oggetto in un file. È una buona abitudine da usare transitorio 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   }   
transitorio e statico: Da statico i campi non fanno parte dello stato dell'oggetto e non vi è alcun utilizzo/impatto dell'utilizzo transitorio parola chiave con variabili statiche. Tuttavia non vi è alcun errore di compilazione. transitorio e finale: le variabili finali sono serializzate direttamente in base ai loro valori, quindi non vi è alcun utilizzo/impatto nel dichiarare la variabile finale come transitorio . 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