الفرق بين StringBuffer و StringBuilder

الفرق بين StringBuffer و StringBuilder
الفرق بين StringBuffer و StringBuilder

فيديو: الفرق بين StringBuffer و StringBuilder

فيديو: الفرق بين StringBuffer و StringBuilder
فيديو: لقاء خاص - د/ أحمد عكاشة يشرح الفرق بين التطرف والإرهاب .. "التطرف فكر أما الإرهاب سلوك" 2024, يوليو
Anonim

StringBuffer مقابل StringBuilder

Java هي لغة موجهة للكائنات شائعة جدًا. في Java ، يتم توفير فئة String لتحتوي على سلسلة من الأحرف التي لا يمكن تعديلها (بمجرد تهيئتها). بدلاً من ذلك ، توفر لغة برمجة Java نوعين من التسلسلات القابلة للتغيير من الأحرف. أي عندما يحتاج المبرمجون إلى تعديل سلسلة معينة (بعد التهيئة) ، فإنهم بحاجة إلى استخدام فئة StringBuffer أو فئة StringBuilder ، بدلاً من فئة String. تم تقديم StringBuffer في JDK 1.0 وتم تقديم فئة StringBuilder في JDK 1.5 ، في الواقع كبديل لفئة StringBuffer (للبيئات أحادية الخيط).

ما هو StringBuffer؟

تم تقديم فئة StringBuffer في JDK 1.0. تنتمي فئة StringBuffer إلى حزمة java.lang وهي موروثة من java.lang.object العام. لا يمكن للمبرمجين تمديدها لأنها فئة نهائية. تطبق فئة StringBuffer واجهات Serializable و Appendable و CharSequience. يمكن أن يحتوي كائن من الفئة StringBuffer على سلسلة من الأحرف قابلة للتغيير وآمنة لمؤشر الترابط. هذا يعني أنه يشبه إلى حد كبير كائن String ، ولكن يمكن تغيير تسلسل الأحرف (الطول والمحتوى) في أي وقت بعد تهيئة كائن StringBuffer. ومع ذلك ، يجب أن يتم ذلك باستخدام الطرق المحددة التي توفرها فئة StringBuffer. توجد عمليتان أساسيتان في فئة StringBuffer. يتم توفيرها من خلال طريقتي append () و insert (). هذه الطرق محملة بشكل زائد ، لذا فهي قادرة على قبول البيانات من أي نوع مثل الأعداد الصحيحة والطويلة. كلتا الطريقتين تقوم أولاً بتحويل أي إدخال إلى سلسلة ، ثم تضيف (تلحق أو تُدرج) أحرف السلسلة المقابلة إلى كائن Stribbuffer الحالي.تضيف طريقة append () السلسلة المحولة إلى نهاية كائن StringBuffer الحالي ، بينما تضيف طريقة insert () أحرف الإدخال إلى نقطة الإدخال المحددة.

ما هو StringBuilder؟

تم تقديم فئة StringBuilder في JDK 1.5. تشبه StringBuilder API إلى حد كبير StringBuffer API. في الواقع ، تم تقديم فئة StringBuilder كبديل لفئة StringBuffer (للتطبيقات أحادية الخيط). تنتمي فئة StringBuilder إلى حزمة java.lang وهي موروثة من java.lang.object العام. إنها فئة نهائية وبالتالي لا يستطيع المبرمجون تمديدها. تطبق فئة StringBuilder واجهات Serializable و Appendable و CharSequience. يمكن أن يحتوي كائن من الفئة StringBuilder على سلسلة من الأحرف قابلة للتغيير ولكنها ليست آمنة لمؤشر الترابط. هذا يعني أنه يشبه إلى حد كبير كائن String ، ولكن يمكن تغيير السلسلة في أي وقت. لكن فئة StringBuilder لا توفر التزامن ، وبالتالي يُدعى أنها أسرع من استخدام فئة StringBuffer.توفر فئة StringBuilder أساليب append () و insert () مع وظائف مماثلة تمامًا كما في فئة StringBuffer.

ما هو الفرق بين StringBuffer و StringBuilder؟

على الرغم من أنه يمكن استخدام فئات StringBuilder و StringBuffer للتسلسلات القابلة للتغيير من الأحرف في Java ، إلا أن هناك فرقًا رئيسيًا بينهما. على عكس فئة StringBuffer ، فإن فئة StringBuilder ليست آمنة لمؤشر الترابط ، ولا توفر أي مزامنة. لذلك ، يوصى باستخدام فئة StringBuilder بدلاً من فئة StringBuffer في التطبيقات أحادية الترابط ، لأنه يُزعم أن فئة StringBuilder ستكون أسرع بكثير من فئة StringBuffer (في ظل الظروف العادية).

موصى به: