Avatar ·

StringBuilder مقابل StringBuffer: ما الفرق وأيهما أفضل للاستخدام في Java؟

مرحبًا بالجميع! بدأت تعلم Java وغالبًا ما أواجه مواقف حيث أحتاج إلى ربط العديد من السلاسل النصية، خاصة في الحلقات. في البداية كنت أستخدم التسلسل العادي عبر `+`، لكنني قرأت أن هذا غير فعال، ومن الأفضل استخدام `StringBuilder` أو `StringBuffer`. لكني مرتبك: ما الفرق بينهما؟ يبدو أن كلاهما يفعل نفس الشيء — يسمحان بجمع السلسلة النصية دون إنشاء كائنات إضافية. كتبت مثالًا صغيرًا لكنني لا أفهم أيهما أختار: ```java public class Test { public static void main(String[] args) { // الخيار 1 StringBuilder sb = new StringBuilder(); for (int i = 0; i < 1000; i++) { sb.append("رقم ").append(i).append(", "); } String result1 = sb.toString(); // الخيار 2 StringBuffer sbf = new StringBuffer(); for (int i = 0; i < 1000; i++) { sbf.append("رقم ").append(i).append(", "); } String result2 = sbf.toString(); } } ```