الكلمة الأساسية المؤقتة في جافا

عابر هو معدل المتغيرات المستخدمة في التسلسل . في وقت التسلسل، إذا كنا لا نريد حفظ قيمة متغير معين في ملف فإننا نستخدمه عابر الكلمة الرئيسية. عندما يأتي JVM عبر عابر الكلمة الأساسية تتجاهل القيمة الأصلية للمتغير وتحفظ القيمة الافتراضية لنوع البيانات المتغير هذا. عابر تلعب الكلمة الأساسية دورًا مهمًا في تلبية القيود الأمنية. هناك العديد من الأمثلة الواقعية حيث لا نريد حفظ البيانات الخاصة في الملف. استخدام آخر ل عابر الكلمة الأساسية ليست إجراء تسلسل للمتغير الذي يمكن حساب/استخلاص قيمته باستخدام كائنات أو نظام متسلسلة أخرى مثل عمر الشخص والتاريخ الحالي وما إلى ذلك. من الناحية العملية، قمنا بإجراء تسلسل فقط لتلك الحقول التي تمثل حالة مثيل بعد أن يكون كل التسلسل على وشك حفظ حالة الكائن في ملف. إنها عادة جيدة للاستخدام عابر 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   }   
عابرة وثابتة: منذ ثابت الحقول ليست جزءًا من حالة الكائن ولا يوجد استخدام/تأثير للاستخدام عابر الكلمة الأساسية ذات المتغيرات الثابتة. ومع ذلك لا يوجد خطأ في التجميع. عابرة ونهائية : يتم إجراء تسلسل للمتغيرات النهائية مباشرة حسب قيمها، لذلك لا يوجد فائدة/تأثير للإعلان عن المتغير النهائي عابر . 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