[Java] الفرق بين StringBuffer و StringBuilder فى التعامل مع السلاسل النصية
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: أساسيات اللغة Java Basics
صفحة 1 من اصل 1 • شاطر
[Java] الفرق بين StringBuffer و StringBuilder فى التعامل مع السلاسل النصية
اهلا بكم
على الرغم من التشابة الكبير بين الفئة #StringBuffer و الفئة #StringBuilder فى التعامل مع السلاسل النصية فى الجافا الا ان هناك فروق جوهرية بينهما على النحو التالى :
1_الفئة #StringBuffer متزامنة synchronized وهذا يعني أنه اذا كان هناك أكثر من مسار thread لا يمكن استدعاء أساليب الفئة StringBuffer في وقت واحد ....فى حين أن الفئة #StringBuilder غير متزامنة non-synchronized و بالتالى فانة يمكن إنشاء اكثر من مسار thread لاستدعاء أساليب الفئة #StringBuilder في وقت واحد.
2_ الفئة #StringBuilder أكثر كفاءة فى التعامل مع السلاسل النصية من الفئة #StringBuffer.
أمثلة للتوضيح :
المثال التالى يوضح كفائة الفئتين فى التعامل مع السلاسل النصية حيث يقوم البرنامج بعمل حلقة تكرارية من 1 الى 10 الف دورة ومن ثم الحاق الكلمة Tpoint من خلال الاسلوب #append للفئة #StringBuffer و الفئة #StringBuilder ...ثم حساب الزمن المستغرق لكل فئة فى عملية الالحاق :
المخرجات :
Time taken by StringBuffer: 16ms
Time taken by StringBuilder: 0ms
يلاحظ من عملية الاخراج أن الفئة #StringBuilder أكثر فلم تستغرق اى وقت يذكر لعملية الالحاق اعلا فى حين أن الفئة #StringBuffer أستغرقت حوالى 16 ميلى ثانية لنفس العملية
تحياتى
على الرغم من التشابة الكبير بين الفئة #StringBuffer و الفئة #StringBuilder فى التعامل مع السلاسل النصية فى الجافا الا ان هناك فروق جوهرية بينهما على النحو التالى :
1_الفئة #StringBuffer متزامنة synchronized وهذا يعني أنه اذا كان هناك أكثر من مسار thread لا يمكن استدعاء أساليب الفئة StringBuffer في وقت واحد ....فى حين أن الفئة #StringBuilder غير متزامنة non-synchronized و بالتالى فانة يمكن إنشاء اكثر من مسار thread لاستدعاء أساليب الفئة #StringBuilder في وقت واحد.
2_ الفئة #StringBuilder أكثر كفاءة فى التعامل مع السلاسل النصية من الفئة #StringBuffer.
أمثلة للتوضيح :
المثال التالى يوضح كفائة الفئتين فى التعامل مع السلاسل النصية حيث يقوم البرنامج بعمل حلقة تكرارية من 1 الى 10 الف دورة ومن ثم الحاق الكلمة Tpoint من خلال الاسلوب #append للفئة #StringBuffer و الفئة #StringBuilder ...ثم حساب الزمن المستغرق لكل فئة فى عملية الالحاق :
- الكود:
public class ConcatTest{
public static void main(String[] args){
long startTime = System.currentTimeMillis();
StringBuffer sb = new StringBuffer("Java");
for (int i=0; i<10000; i++){
sb.append("Tpoint");
}
System.out.println("Time taken by StringBuffer: " + (System.currentTimeMillis() - startTime) + "ms");
startTime = System.currentTimeMillis();
StringBuilder sb2 = new StringBuilder("Java");
for (int i=0; i<10000; i++){
sb2.append("Tpoint");
}
System.out.println("Time taken by StringBuilder: " + (System.currentTimeMillis() - startTime) + "ms");
}
}
المخرجات :
Time taken by StringBuffer: 16ms
Time taken by StringBuilder: 0ms
يلاحظ من عملية الاخراج أن الفئة #StringBuilder أكثر فلم تستغرق اى وقت يذكر لعملية الالحاق اعلا فى حين أن الفئة #StringBuffer أستغرقت حوالى 16 ميلى ثانية لنفس العملية
تحياتى
زهراء- ........
- تاريخ التسجيل : 18/02/2011
المساهمات : 438
النقاط : 769
التقيم : 67
الدولة :
الجنس :
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: أساسيات اللغة Java Basics
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
اليوم في 7:09 pm من طرف moslema_r
» شركة تنظيف فرشات بالرياض
الثلاثاء مارس 26, 2024 6:26 pm من طرف moslema_r
» شركة تنظيف استراحات بالرياض
الأحد مارس 24, 2024 10:49 pm من طرف moslema_r
» كشف تسربات المياه في جدة
السبت مارس 23, 2024 7:23 pm من طرف gmalnagy
» خدمات كشف تسربات المياه بخصم 25% - اتصل الان
السبت مارس 23, 2024 7:22 pm من طرف gmalnagy
» شركة تنظيف ثريات بالرياض
الخميس مارس 21, 2024 7:23 pm من طرف moslema_r
» كهربائي منازل بالرياض
الأحد مارس 17, 2024 1:52 pm من طرف رانيا حماد
» افضل شركة نقل عفش بالرياض نقل باكستاني 40% خصم | موقع الانوار
الأحد مارس 17, 2024 1:25 pm من طرف رانيا حماد
» افضل معلم جبس بالرياض تركيب جبس بورد بالرياض 20% خصم اتصل الآن
الأحد مارس 17, 2024 1:09 pm من طرف رانيا حماد
» شراء اثاث مستعمل بالكويت بخصم 30%
الأحد مارس 17, 2024 12:54 pm من طرف رانيا حماد