forbigående nøgleord i Java

forbigående er en variabel modifikator, der bruges i serialisering . På tidspunktet for serialisering, hvis vi ikke ønsker at gemme værdien af ​​en bestemt variabel i en fil, så bruger vi forbigående søgeord. Når JVM støder på forbigående nøgleordet ignorerer den oprindelige værdi af variablen og gemmer standardværdien for den variable datatype. forbigående nøgleord spiller en vigtig rolle for at opfylde sikkerhedsbegrænsninger. Der er forskellige eksempler fra det virkelige liv, hvor vi ikke ønsker at gemme private data i fil. En anden brug af forbigående nøgleordet er ikke at serialisere den variabel, hvis værdi kan beregnes/afledes ved hjælp af andre serialiserede objekter eller system såsom alder på en persons nuværende dato osv. Praktisk talt serialiserede vi kun de felter, som repræsenterer en instanstilstand, efter at al serialisering handler om at gemme et objekts tilstand til en fil. Det er en god vane at bruge forbigående 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   }   
forbigående og statisk: Siden statisk felter er ikke en del af objektets tilstand, der er ingen brug/påvirkning af at bruge forbigående nøgleord med statiske variable. Der er dog ingen kompileringsfejl. forbigående og endelig: endelige variabler serialiseres direkte efter deres værdier, så der er ingen brug/påvirkning af at erklære slutvariabel som forbigående . 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