transientes Schlüsselwort in Java

vergänglich ist ein Variablenmodifikator, der in verwendet wird Serialisierung . Wenn wir zum Zeitpunkt der Serialisierung den Wert einer bestimmten Variablen nicht in einer Datei speichern möchten, verwenden wir vergänglich Stichwort. Wenn JVM rüberkommt vergänglich Schlüsselwort ignoriert den ursprünglichen Wert der Variablen und speichert den Standardwert dieses Variablendatentyps. vergänglich Das Schlüsselwort spielt eine wichtige Rolle, um Sicherheitsbeschränkungen zu erfüllen. Es gibt verschiedene Beispiele aus der Praxis, bei denen wir keine privaten Daten in einer Datei speichern möchten. Eine andere Verwendung von vergänglich Das Schlüsselwort besteht nicht darin, die Variable zu serialisieren, deren Wert mithilfe anderer serialisierter Objekte oder Systeme wie dem Alter einer Person, dem aktuellen Datum usw. berechnet/abgeleitet werden kann. Praktisch haben wir nur die Felder serialisiert, die einen Status einer Instanz darstellen, nachdem es bei der Serialisierung lediglich darum geht, den Status eines Objekts in einer Datei zu speichern. Es ist eine gute Angewohnheit, es zu nutzen vergänglich 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   }   
transient und statisch: Seit statisch Felder sind nicht Teil des Zustands des Objekts. Die Verwendung hat keinen Nutzen/keine Auswirkung vergänglich Schlüsselwort mit statischen Variablen. Es liegt jedoch kein Kompilierungsfehler vor. vorübergehend und endgültig: Endvariablen werden direkt nach ihren Werten serialisiert, sodass die Deklaration der Endvariablen als keinen Nutzen/Auswirkung hat vergänglich . 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