trumpalaikis raktinis žodis Java

trumpalaikis yra kintamųjų modifikatorius, naudojamas serializavimas . Jei serializacijos metu nenorime išsaugoti konkretaus kintamojo vertės faile, naudojame trumpalaikis raktažodį. Kai susiduria JVM trumpalaikis raktinis žodis nepaiso pradinės kintamojo reikšmės ir išsaugo numatytąją to kintamojo duomenų tipo vertę. trumpalaikis raktinis žodis atlieka svarbų vaidmenį siekiant laikytis saugumo apribojimų. Yra įvairių realaus gyvenimo pavyzdžių, kai nenorime išsaugoti privačių duomenų faile. Kitas naudojimas trumpalaikis raktinis žodis yra ne serializuoti kintamąjį, kurio vertę galima apskaičiuoti/išvesti naudojant kitus serijinius objektus ar sistemą, pvz., asmens amžių dabartinę datą ir tt Praktiškai mes suskirstėme tik tuos laukus, kurie atspindi egzemplioriaus būseną po to, kai serializavimas yra skirtas išsaugoti objekto būseną faile. Tai geras įprotis naudoti trumpalaikis 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   }   
trumpalaikis ir statinis: Kadangi statinis laukai nėra objekto būsenos dalis, nėra jokio naudojimo/naudojimo poveikio trumpalaikis raktinis žodis su statiniais kintamaisiais. Tačiau nėra kompiliavimo klaidų. trumpalaikis ir galutinis: galutiniai kintamieji yra tiesiogiai serijiniai pagal jų reikšmes, todėl galutinio kintamojo deklaravimas kaip trumpalaikis . 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