forbigående nøkkelord i Java

forbigående er en variabelmodifikator som brukes i serialisering . På tidspunktet for serialisering, hvis vi ikke ønsker å lagre verdien av en bestemt variabel i en fil, bruker vi forbigående nøkkelord. Når JVM kommer over forbigående nøkkelordet ignorerer den opprinnelige verdien til variabelen og lagrer standardverdien for den variabeldatatypen. forbigående nøkkelord spiller en viktig rolle for å møte sikkerhetsbegrensninger. Det er forskjellige eksempler fra det virkelige liv hvor vi ikke ønsker å lagre private data i fil. En annen bruk av forbigående nøkkelord er ikke å serialisere variabelen hvis verdi kan beregnes/utledes ved hjelp av andre serialiserte objekter eller system som alder på en person gjeldende dato osv. Praktisk talt har vi serialisert bare de feltene som representerer en instanstilstand etter at all serialisering handler om å lagre tilstanden til et objekt til en fil. Det er en god vane å bruke 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 felt er ikke en del av tilstanden til objektet det er ingen bruk/påvirkning av å bruke forbigående nøkkelord med statiske variabler. Det er imidlertid ingen kompilasjonsfeil. forbigående og endelig: endelige variabler er direkte serialisert av verdiene deres, så det er ingen bruk/påvirkning av å erklære sluttvariabel 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