ما هو الخارج في Java ومتى يتم استخدامه؟



يتم استخدام الخارج في Java لحفظ فئة Java في دفق بايت. يجب أن تقوم الفئة التي تحتاج إلى تخريج واجهة قابلة للتخصيص.

تسلسل جافا ليست فعالة للغاية. إذايمكنك إجراء تسلسل للأشياء المتضخمة التي تحتوي على الكثير من السمات والخصائص ، فلا ترغب في إجراء تسلسل. هذا هو المكان الذي يظهر فيه الطابع الخارجي في Java في الصورة. ستساعدك هذه المقالة على فهم عمل التبرير.

هيا نبدأ!





ما هو التبرير الخارجي في جافا؟

يتم استخدام الخارجية في Java كلما احتجت إلى تخصيص ملف التسلسل آلية. إذا نفذت فئة واجهة خارجية ، فسيتم إجراء تسلسل للكائن باستخدام الطريقة writeExternal () . عندما يتم إعادة بناء كائن خارجي في نهاية المستقبل ، سيتم إنشاء مثيل باستخدام مُنشئ بدون وسيطة وتسمى هذه الطريقة readExternal ().

يخدم هذا أساسًا الغرض من التسلسل المخصص ، حيث يمكنك تحديد ما تريد تخزينه في التدفق.



متى تستخدم الخارجية؟

إذا كنت تريد إجراء تسلسل لجزء فقط من ملف موضوع و إذن ، التبرير هو الخيار الأفضل. سيكون عليك إجراء تسلسل للحقول المطلوبة فقط من الكائن.

ما هي واجهة الخارجية؟

إذا كنت ترغب في التحكم في عملية قراءة العناصر وكتابتها أثناء عملية التسلسل وإلغاء التسلسل ، فأنت بحاجة إلى أن تقوم فئة الكائن بتنفيذ الواجهة java.io.Externalizable . عندها فقط يمكنك تنفيذ التعليمات البرمجية الخاصة بك لقراءة وكتابة حالات الكائن. الاساليب، readExternal () و writeExternal () يتم تعريفها بواسطة قابل للتغير واجهه المستخدم .

كيفية طباعة سجل الالتزام git

دعونا نفهم هذه الأساليب بالتفصيل.



readExternal (إدخال الكائن)

ينفذ كائن الواجهة هذه الطريقة التي تساعد في استعادة محتوياتها عن طريق استدعاء طرقإدخال بياناتللأنواع البدائية. كما يدعوreadObjectللكائنات والسلاسل والمصفوفات. الآن دعونا نناقش كيفية تنفيذ هذه الطريقة readExternal.

على هذا النحو readExternal () الطريقة تأخذ إدخال الكائن ، يمكنك استخدام طريقته لقراءة حالات الكائن من التدفق الأساسي لهذه القواعد:

جمع الأرقام في جافا عدد صحيح
  • بالنسبة للأنواع البدائية ، يمكنك استخدام ملحق readXXX () طرق إدخال بياناتواجهه المستخدم. هم هم ، readBoolean ()و readByte ()و readInt ()و readLong ().
  • إذا كان لديك أنواع كائنات مثل سلاسل أو مصفوفات أو أي من مخصصاتك الطبقات ، يمكنك استخدام readObject () طريقة.

مثال:

يطرح readExternal (ObjectInput in) الفراغ العام ClassNotFoundException و IOException {this.code = in.readInt () this.name = (String) in.readObject () this.password = (String) in.readObject () this.birthday = ( التاريخ) in.readObject ()}

كما ترى هنا ، قمت بإلغاء تسلسل السمات التالية: الرمز والاسم وكلمة المرور وتاريخ الميلاد.

writeExternal (إخراج الكائن)

يقوم كائن الواجهة بتنفيذ هذه الطريقة لحفظ المحتويات عن طريق استدعاء أساليب DataOutput للقيم الأولية أو استدعاء الكتابة طريقة ObjectOutput للكائنات والسلاسل والمصفوفات. الآن ، دعونا نلقي نظرة على عملية التنفيذ.

على هذا النحو writeExternal () الطريقة تأخذإخراج الكائن، يمكنك استخدام طريقته لكتابة حالات الكائن في التدفق الأساسي باتباع القواعد التالية:

  • بالنسبة للأنواع البدائية ، استخدم الكتابة XXX () طرق إخراج البياناتواجهة مثل writeBoolean ()و writeByte ()و writeInt ()و writeLong ()، إلخ.
  • لأنواع الكائنات مثل و المصفوفات ، فصولك المخصصة ، يمكنك استخدام writeObject () طريقة.

مثال:

يطرح writeExternal العامة (ObjectOutput out) IOException {out.writeInt (code) out.writeObject (name) // اكتب كلمة مرور فارغة: out.writeObject ('') out.writeObject (عيد ميلاد)}

ومع ذلك ، هنا ، يمكنك أن ترى أنني قمت بتسلسل السمات التالية: الرمز والاسم وكلمة المرور وتاريخ الميلاد.

الآن ، بالانتقال إلى الموضوع التالي في هذه المقالة الخارجية في Java ، دعنا نناقش الاختلافات الرئيسية بين الخارجية والتسلسل في Java.

كيفية تجميع برنامج جافا

التبرير مقابل التسلسل: الفرق بين التبرير والتسلسل

هذا هو واحد من أكثر الأسئلة التي يكثر طرحها .

المعلماتالتبريرالتسلسل
معالجةيستخدم عملية التسلسل المخصصيستخدم عملية التسلسل الافتراضية
UIDلا حاجة إلى UIDيحتاج إلى serialVersionUID
تخزينيجب عليك تخزين البيانات التي لها كائنيمكنك تخزين الكائن مباشرة
التمكن منتوفر الواجهة الخارجية التحكم الكامل في عملية التسلسل إلى التطبيق.
لا يوجد مثل هذا الوصول

أتمنى أن تكون واضحًا يا رفاق في ما يتعلق بالتشخيص الخارجي مقابل التسلسل. وبهذا نصل إلى نهاية هذه المقالة حول 'الخارجية في جافا'. آمل أن تكونوا واضحين يا رفاق بشأن الموضوعات التي تمت مشاركتها معكم.

آمل أن يكون المحتوى المذكور أعلاه مفيدًا في تعزيز المعرفه. استمر في القراءة ، استمر في الاستكشاف!

راجع أيضًا من Edureka ، وهي شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250000 متعلم راضٍ منتشرين في جميع أنحاء العالم. تم تصميم دورة تدريب وشهادة Java J2EE و SOA من Edureka للطلاب والمهنيين الذين يرغبون في أن يصبحوا مطوري Java. تم تصميم الدورة التدريبية لمنحك السبق في برمجة Java وتدريبك على مفاهيم Java الأساسية والمتقدمة جنبًا إلى جنب مع العديد مثل السبات والربيع.