[Java] الفرق بين StringBuffer و StringBuilder فى التعامل مع السلاسل النصية
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: أساسيات اللغة Java Basics
صفحة 1 من اصل 1 • شاطر
[Java] الفرق بين StringBuffer و StringBuilder فى التعامل مع السلاسل النصية
اهلا بكم
على الرغم من التشابة الكبير بين الفئة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] و الفئة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] فى التعامل مع السلاسل النصية فى الجافا الا ان هناك فروق جوهرية بينهما على النحو التالى :
1_الفئة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] متزامنة synchronized وهذا يعني أنه اذا كان هناك أكثر من مسار thread لا يمكن استدعاء أساليب الفئة StringBuffer في وقت واحد ....فى حين أن الفئة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] غير متزامنة non-synchronized و بالتالى فانة يمكن إنشاء اكثر من مسار thread لاستدعاء أساليب الفئة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] في وقت واحد.
2_ الفئة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] أكثر كفاءة فى التعامل مع السلاسل النصية من الفئة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط].
أمثلة للتوضيح :
المثال التالى يوضح كفائة الفئتين فى التعامل مع السلاسل النصية حيث يقوم البرنامج بعمل حلقة تكرارية من 1 الى 10 الف دورة ومن ثم الحاق الكلمة Tpoint من خلال الاسلوب [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] للفئة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] و الفئة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] ...ثم حساب الزمن المستغرق لكل فئة فى عملية الالحاق :
المخرجات :
Time taken by StringBuffer: 16ms
Time taken by StringBuilder: 0ms
يلاحظ من عملية الاخراج أن الفئة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] أكثر فلم تستغرق اى وقت يذكر لعملية الالحاق اعلا فى حين أن الفئة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] أستغرقت حوالى 16 ميلى ثانية لنفس العملية
تحياتى
على الرغم من التشابة الكبير بين الفئة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] و الفئة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] فى التعامل مع السلاسل النصية فى الجافا الا ان هناك فروق جوهرية بينهما على النحو التالى :
1_الفئة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] متزامنة synchronized وهذا يعني أنه اذا كان هناك أكثر من مسار thread لا يمكن استدعاء أساليب الفئة StringBuffer في وقت واحد ....فى حين أن الفئة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] غير متزامنة non-synchronized و بالتالى فانة يمكن إنشاء اكثر من مسار thread لاستدعاء أساليب الفئة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] في وقت واحد.
2_ الفئة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] أكثر كفاءة فى التعامل مع السلاسل النصية من الفئة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط].
أمثلة للتوضيح :
المثال التالى يوضح كفائة الفئتين فى التعامل مع السلاسل النصية حيث يقوم البرنامج بعمل حلقة تكرارية من 1 الى 10 الف دورة ومن ثم الحاق الكلمة Tpoint من خلال الاسلوب [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] للفئة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] و الفئة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] ...ثم حساب الزمن المستغرق لكل فئة فى عملية الالحاق :
- الكود:
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
يلاحظ من عملية الاخراج أن الفئة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] أكثر فلم تستغرق اى وقت يذكر لعملية الالحاق اعلا فى حين أن الفئة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] أستغرقت حوالى 16 ميلى ثانية لنفس العملية
تحياتى
زهراء- ........
- تاريخ التسجيل : 18/02/2011
المساهمات : 406
النقاط : 691
التقيم : 55
الدولة :
الجنس :
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: أساسيات اللغة Java Basics
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
» شركة مكافحة حشرات بالكويت
» نظام مبيعات ومخازن Sales and Inventory System بالفجوال بيسك دوت نت مفتوح المصدر
» تشغيل ملفات فلاشية swf بأستخدام أداة Shockwave Flash
» تعلم كيفية تغير حجم النافذة و الادوات التى عليها بتغير دقة عرض الشاشة screen resolution
» إنشاء قاعدة بيانات MySQL بأستخدام شفرة Java
» تعلم كيفية استخدام المكون JFileChooser لفتح الملفات فى الجافا
» إنشاء و تنسيق الوان العنصر JProgressBar
» تآلف لأسرار الحياه والحب الحلال
» الرسم ثانئى الابعاد فى الجافا باستخدام Graphics2D...مقال 3_رسم الاشكال الهندسية_ رسم المربعات و المستطيل