السلسلة ليست نوعًا بسيطًا ، ولكن فئة تستخدم لتمثيل سلسلة من الأحرف. تتوافق الشخصيات نفسها لمعايير Unicode ، وهناك طريقتان لتهيئتها.
على سبيل المثال: String Meneting = "Good Morning! /N" ؛
سلسلة تحية = سلسلة جديدة (= "صباح الخير! /n") ؛
تتمثل سمة في السلسلة إلى أنه بمجرد تعيينها ، لا يمكن تغيير كائن الحرف الذي يشير إليه.
StringBuffer هو كائن سلسلة مع خصائص مرجع الكائن.
يمكن لكائن StringBuffer استدعاء طرقه للزيادة ديناميكيًا وإدراج العمليات وتعديلها وحذفها ، ولا يحتاج إلى تحديد الحجم مقدمًا مثل الصفيف ، وذلك لتحقيق تأثير إدخال الأحرف عدة مرات وإخراجها في وقت واحد ، لذلك فهي مرنة للغاية ومريحة لتشغيل السلاسل.
بمجرد إنشاء السلسلة المطلوبة النهائية من خلال StringBuffer ، يمكن تسميتها طريقة tostring لتحويلها إلى كائن سلسلة.
موقف هاتين الفئتين في معالجة السلسلة هو بديهي. دعنا نشرح ذلك من النقاط التالية
1. مقارنة بين الاثنين من حيث سرعة التنفيذ: StringBuffer> String
2.String <stringBuffer reason سلسلة: String ثابت StringBuffer: إنشاء حرف متغير من الاسم أعلاه ، السلسلة هي "ثابت للحرف" ، أي كائن غير قابل للتغيير. قد يكون لديك سؤال حول فهم هذه الجملة ، مثل هذا الرمز:
سلسلة S = "ABCD" ؛
من الواضح أن متغير السلسلة S ، لماذا لم يتغير؟ يتم استخدام كائن S لتنفيذ السطر الثاني من التعليمات البرمجية ، مما يعني أن الكائن S لم يتغير من قبل ، لذلك نقول أن نوع السلسلة هو كائن غير قابل للتغيير. في الواقع يتم إنشاء كائنات جديدة باستمرار ، وسيصبح الكائنات الأصلية القمامة وسيتم جمعها بواسطة GC.
لكن StringBuffers مختلفة. ستكون السرعة أسرع
3. مثال خاص:
نسخة الكود كما يلي:
String str = "هذه ليست سوى" + "بسيطة" + "اختبار" ؛
StringBuffer Builder = new StringBuilder ("هذه ليست سوى"). إلحاق ("بسيط"). إلحاق ("اختبار") ؛
سوف تفاجأ عندما تجد أن سرعة توليد كائنات STR هي ببساطة سريعة جدًا ، وفي هذا الوقت ، لا تتمتع StringBuffer بأي ميزة في السرعة على الإطلاق. في الواقع ، هذه خدعة من JVM ، في الواقع:
String str = "هذه ليست سوى" + "بسيطة" + "اختبار" ؛
في الحقيقة:
String str = "هذا مجرد اختبار بسيط" ؛
لذلك لا يستغرق الكثير من الوقت. ولكن ما يجب ملاحظته هنا هو أنه إذا جاءت السلسلة من كائن سلسلة آخر ، فإن السرعة ليست بهذه السرعة ، على سبيل المثال:
String STR2 = "هذا هو" سلسلة STR3 = "Simple" ؛
في هذا الوقت ، ستقوم JVM بذلك بطريقة منتظمة بالطريقة الأصلية.
4.StringBuilder و StringBuffer
StringBuilder: stringbuffer غير آمن: مؤلف من مؤشرات الترابط عندما يتم استخدامه من قبل مؤشرات ترابط متعددة في المخزن المؤقت للسلسلة ، لا يمكن لـ JVM ضمان أن يكون تشغيل StringBuilder آمنًا. . ل. بالطبع ، في معظم الحالات ، نعمل تحت موضوع واحد ، لذلك في معظم الحالات ، يوصى باستخدام StringBuilder بدلاً من StringBuffer ، وهذا هو السبب في السرعة.
ملخص استخدام الثلاثة:
1. إذا كنت تريد تشغيل كمية صغيرة من البيانات ، استخدم = سلسلة
2. قم بتشغيل كمية كبيرة من البيانات في المخزن المؤقت للسلسلة الموضحة = StringBuilder
3. قم بتشغيل كمية كبيرة من البيانات في مخزن مؤقت لسلسلة متعدد الخيوط = StringBuffer