غالبًا ما يتم استخدام String و StringBuilder في المشاريع. يمكن ربط String بـ "+" ، ويمكن ربط StringBuilder بـ append. لم أفهم أبدًا سبب استخدام StringBuilder لأنني أستطيع استخدام String. على الرغم من أنني عادةً ما أستخدم StringBuilder لربط عبارات الاستعلام عند إجراء استعلامات قاعدة البيانات، إلا أنني ما زلت لا أعرف السبب. عندما كنت أشاهد الفيديو اليوم، رأيت StringBuffer مرة أخرى، وشعرت أن الاستخدام مشابه، لذا قمت بالتحقق من الاختلافات بين هذه الأشياء.
وتتلخص على النحو التالي:
1. المقارنة من حيث سرعة التنفيذ: StringBuilder > StringBuffer
2. StringBuffer و StringBuilder، هما متغيرات سلسلة وكائنات قابلة للتغيير، فكلما استخدمناها للعمل على سلاسل، فإننا في الواقع لا نعمل على كائن مثل إنشاء بعض الكائنات للعمل مثل String.
3.StringBuilder: خيط غير آمن
StringBuffer: خيط آمن
عندما يتم استخدام المخزن المؤقت للسلسلة الخاص بنا بواسطة سلاسل رسائل متعددة، لا يمكن لـ JVM ضمان تشغيل StringBuilder بشكل آمن، على الرغم من أنه الأسرع، إلا أنه يمكنه ضمان عمل StringBuffer بشكل صحيح. بالطبع، في معظم الحالات نقوم بتنفيذ العمليات في مؤشر ترابط واحد، لذلك يوصى في معظم الحالات باستخدام StringBuilder بدلاً من StringBuffer لأسباب تتعلق بالسرعة.
ملخص استخدام الثلاثة:
1. إذا كنت تريد تشغيل كمية صغيرة من البيانات، فاستخدم String
2. تشغيل سلسلة عازلة أحادية الخيوط لتشغيل كمية كبيرة من البيانات StringBuilder
3. عملية متعددة الخيوط للمخزن المؤقت للسلسلة لتشغيل كمية كبيرة من البيانات StringBuffer