logo

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

عابر هو معدل المتغيرات المستخدمة في التسلسل . في وقت التسلسل، إذا كنا لا نريد حفظ قيمة متغير معين في ملف فإننا نستخدمه عابر الكلمة الرئيسية. عندما يأتي 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