موصى به, 2024

اختيار المحرر

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

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

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

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

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

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

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

 System.out.println ("Hello this is Teckpix Solution")؛ 

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

الآن دعونا نفهم تحور كائن السلسلة بمساعدة مثال.

 str str = new String ("Teckpix")؛ str.concat ( "الحل")؛ system.out.println (str)؛ // الإخراج Teckpix 

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

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

تعريف StringBuffer

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

دعنا نفهم تحوُّل كائن StringBuffer بمساعدة مثال:

 StringBuffre Sb = New StringBuffer ("Teckpix")؛ Sb.append ( "الحل")؛ system.out.println (Sb)؛ // Output Teckpix Solution 

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

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

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

استنتاج:

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

Top