الفرق بين سلسلة و StringBuffer الفئة في جافا

مؤلف: Laura McKinney
تاريخ الخلق: 3 أبريل 2021
تاريخ التحديث: 17 قد 2024
Anonim
Difference Between String StringBuffer and StringBuilder in Java by Deepak
فيديو: Difference Between String StringBuffer and StringBuilder in Java by Deepak

المحتوى


سلسلة و StringBuffer كلاهما الفئات التي تعمل على سلاسل. الفئة StringBuffer هي فئة نظير الفئة String. كائن فئة السلسلة ذو طول ثابت. كائن الفئة StringBuffer قابل للتطوير. الفرق الأساسي بين String و StringBuffer هو أن كائن الفئة "String" هو غير قابل للتغيير. كائن الفئة "StringBuffer" متقلب.

  1. رسم بياني للمقارنة
  2. فريف
  3. الاختلافات الرئيسية
  4. استنتاج

رسم بياني للمقارنة

أساس للمقارنةخيطStringBuffer
الأساسيةتم إصلاح طول كائن السلسلة.يمكن زيادة طول StringBuffer.
تعديلكائن سلسلة غير قابل للتغيير.كائن StringBuffer قابل للتغيير.
أداءإنه أبطأ أثناء التسلسل.إنه أسرع أثناء التسلسل.
ذاكرةيستهلك المزيد من الذاكرة.يستهلك ذاكرة أقل.
تخزينتجمع سلسلة ثابتة.كومة الذاكرة.


تعريف السلسلة

"سلسلة" هي فئة في جاوة. كائن فئة السلسلة ذو طول ثابت ، والأهم من ذلك أن نتذكر أن كائن فئة السلسلة "غير قابل للتغيير". بمجرد تهيئة كائن السلسلة ، لا يمكنك تعديل هذا الكائن مرة أخرى. يتم تخزين كائن الفئة سلسلة في تجمع ثابت سلسلة.

دعنا نفهم أولاً أنه كلما قمت بإنشاء أي سلسلة ؛ قمت بإنشاء كائن من نوع السلسلة. ثوابت السلسلة هي أيضًا كائنات سلسلة.

System.out.ln ("مرحبًا ، هذا هو حل Teckpix") ؛

في الجملة أعلاه ، السلسلة "Hello this is Teckpix Solution" هي سلسلة ثابتة.

الآن ، دعونا نفهم قابلية كائن الكائن String بمساعدة مثال.

سلسلة str = سلسلة جديدة ("Teckpix") ؛ str.concat ( "الحل")؛ system.out.ln (str) ؛ // الناتج Teckpix

في الكود أعلاه ، حاولت أن أسلسل السلسلتين "Teckpix" و "Solution". كما نعلم كلما تم إنشاء سلسلة ، فهذا يعني إنشاء كائن النوع String. وبالتالي ، فإن السلسلة "Teckpix" تنشئ كائنًا ، يتم تعيين مرجعه إلى كائن السلسلة "str". بعد ذلك ، حاولت أن أسلسل سلسلة أخرى "الحل" باستخدام السلسلة "Teckpix" باستخدام طريقة "concat ()" من سلسلة السلسلة.


نظرًا لأن الكائنات String غير قابلة للتغيير ، فلن يتم إجراء أي تعديل على السلسلة "Teckpix" وتقوم السلسلة الجديدة "Solution" بإنشاء كائن آخر في تجمع ثابت السلسلة. لكن ، الإشارة إلى الكائن "الحل" لم يتم اكتشافها من قبل أي كائن ، وبالتالي فقد فقدت الإشارة إلى الكائن Solution على الرغم من أنها لا تزال موجودة في مجموعة الخيط الثابت. نظرًا لأنه لم يتم إجراء أي تعديل على الكائن Teckpix ، فعندما أقوم بتشغيل سلسلة الكائن التي قمت بتعيين مرجع Teckpix إليها مسبقًا ، فإن السلسلة "Teckpix" فقط.

تعريف StringBuffer

الفئة "StringBuffer" هي فئة النظراء للفئة "سلسلة". يوفر الفئة StringBuffer وظائف أكثر للسلاسل. كائن الفئة StringBuffer قابل للتغيير وهو كائن يمكن تعديله. طول كائن StringBuffer قابل للتطوير. يمكنك إدراج الأحرف أو السلاسل الفرعية في منتصف السلسلة الحرفية التي تم تعيينها لكائن StringBuffer أو في نهايته. يخصص StringBuffer مساحة لـ 16 حرفًا إضافيًا عند عدم طلب طول معين.

دعنا نفهم قابلية كائن StringBuffer (التقلبات) بمساعدة مثال:

StringBuffer Sb = جديد StringBuffer ("Teckpix") ؛ Sb.append ( "الحل")؛ system.out.ln (Sb) ؛ // الناتج Teckpix الحل

كما نعلم أن كائن StringBuffer قابل للتغيير. تقوم طريقة append () بتعديل كائن StringBuffer Sb الذي مبدئيًا ، يتم تعيين مرجع الكائن "Teckpix" مسبقًا. إلحاق الأسلوب () إلحاق السلسلة الحرفية الجديدة "الحل" ، إلى نهاية السلسلة الحرفية "Teckpix". الآن عندما كنت الكائن Sb فإنه سيتم كائن سلسلة المعدلة "حلول Teckpix".

  1. يتم إصلاح طول كائن السلسلة ولكن يمكن زيادة طول كائن StringBuffer عند الحاجة.
  2. كائن السلسلة غير قابل للتغيير ، أي أنه لا يمكن إعادة تعيين الكائن مرة أخرى ، بينما كائن StringBuffer قابل للتغيير.
  3. كائن السلسلة يكون أبطأ في الأداء بينما يكون كائن StringBuffer أسرع.
  4. كائن String يستهلك ذاكرة أكبر ، بينما تستهلك كائنات StringBuffer ذاكرة أقل.
  5. يتم تخزين كائنات السلسلة في تجمع ثابت ، بينما يتم تخزين كائنات StringBuffer على ذاكرة كومة الذاكرة المؤقتة.

استنتاج:

توفر كائنات StringBuffer المزيد من الوظائف للسلاسل مقارنةً بسلسلة السلسلة. وبالتالي ، فمن الأفضل العمل مع StringBuffer بدلاً من الفئة String.