الفرق الرئيسي - String vs StringBuffer و StringBuilder في Java
String و StringBuffer و String Builder هي فئات في Java. تستخدم السلسلة على نطاق واسع في برمجة Java. بمجرد إنشاء كائن String ، لا يمكن تغييرها. في كل مرة يحدث تغيير في السلسلة ، يتم إنشاء سلسلة جديدة. حتى لو كانت عبارة عن تسلسل لسلسلة موجودة ، فإنها تنشئ سلسلة جديدة. هذا يسبب ضياع الذاكرة. يتم استخدام فئات StringBuffer و StringBuilder في Java لتعديل String. يتمثل الاختلاف الرئيسي بين String و StringBuffer و StringBuilder في Java في أن String عبارة عن فئة لإنشاء كائن من نوع String عبارة عن سلسلة من الأحرف ، و StringBuffer هي فئة تُستخدم لتعديل سلاسل توفر أمان الخيط ، و StringBuilder هي فئة الفئة المستخدمة في تعديل السلاسل التي لا توفر أمان مؤشر الترابط.
ما هي السلسلة في Java؟
فئة String في حزمة java.lang. في كل مرة ينشئ فيها المبرمج سلسلة ، يكون كائنًا من نوع String. السلاسل هي معنى ثابت بمجرد إنشاء الكائن ، ولا يمكن تغييره. الكائنات التي تم إنشاؤها باستخدام فئات الغلاف مثل Integer و Byte و Float و Double هي أيضًا غير قابلة للتغيير. يتم وضع سلسلة حرفية بين علامتي اقتباس. على سبيل المثال "مرحبا بالعالم". في كل مرة يتم فيها إنشاء سلسلة حرفية ، يتحقق Java Virtual Machine (JVM) من تجمع ثابت String. في حالة وجود السلسلة ، يتم إرجاع مرجع إلى مجمع String الثابت. إذا كانت سلسلة جديدة ، يتم إنشاء هذا الكائن في تجمع ثابت String.
الشكل 01: برنامج Java باستخدام String و StringBuffer و StringBuilder
راجع جزء الكود أدناه.
String s1="مرحبًا" ؛
s1=s1 + "العالم" ؛
System.out.println (s1) ؛
في العبارة الأولى ، يشير s1 إلى "Hello" في مجموعة String ثابتة. في العبارة الثانية ، لا يغير JVM السلسلة الحالية. بدلاً من ذلك ، يقوم بإنشاء سلسلة جديدة باسم "Hello World" ويشير s1 الآن إلى تلك السلسلة الجديدة. كائن "Hello" الخارج لا يزال موجودًا في تجمع String ثابت.
إذا كان هناك رمز وهو
String s1="مرحبًا" ؛
String s2=s1 ؛
s1، s2 كلاهما سيشير إلى كائن String "Hello".
ما هو StringBuffer في Java؟
تُستخدم فئة StringBuffer لجعل كائنات String قابلة للتغيير. لذلك ، يمكن تعديل هذه الكائنات. يحدد StringBuffer أربعة صانعين. StringBuffer () ، StringBuffer (حجم int) ، StringBuffer (String str) ، StringBuffer (charSequence ch)
راجع الرمز أدناه ،
StringBuffer s1=StringBuffer جديد ("مرحبًا") ؛
s1.append (“العالم”) ؛
System.out.println (s1) ؛
في العبارة 1 ، يشير s1 إلى كائن "Hello" في كومة. الكائن قابل للتغيير لأنه تم إنشاؤه باستخدام StringBuffer. في العبارة 2 ، يتم إلحاق "World" بنفس كائن السلسلة "Hello".
يمكن أن توفر كائنات السلسلة التي تم إنشاؤها باستخدام فئة StringBuffer الذاكرة. يوفر StringBuffer أمان الخيط لأن خيطين لا يمكنهما الوصول إلى نفس الطريقة في فئة StringBuffer في وقت واحد. تقلل سلامة الخيط من أداء StringBuffer. تحتوي فئة StringBuffer على طرق مثل append () ، و insert () ، و reverse () ، و replace ().
ما هو StringBuilder في Java؟
يتم استخدام فئة StringBuilder لجعل كائنات String قابلة للتغيير. لذلك ، يمكن تعديل هذه الكائنات. تشبه الوظيفة StringBuffer ، لكن هذا لا يوفر أمان مؤشر الترابط. StringBuilder لديه منشئات مثل StringBuilder () ، StringBuilder (حجم int) ، StringBuilder (String str).
راجع الكود أدناه
StringBuilder s1=جديد StringBuilder (“مرحبًا”) ؛
s1.append (“العالم”) ؛
System.out.println (s1) ؛
في العبارة 1 ، يشير s1 إلى كائن "Hello" في كومة. الكائن قابل للتغيير لأنه تم إنشاؤه باستخدام StringBuilder. في العبارة 2 ، يتم إلحاق "World" بنفس كائن السلسلة "Hello". لم يتم إنشاء كائن String جديد تمامًا.
يمكن أن توفر كائنات السلسلة التي تم إنشاؤها باستخدام فئة StringBuilder الذاكرة. على عكس StringBuffer ، لا يوفر StringBuilder أمانًا لمؤشر الترابط لأن خيطين يمكنهما الوصول إلى نفس الطريقة في فئة StringBuilder في وقت واحد. تحتوي فئة StringBuilder على طرق مثل append () ، و insert () ، و reverse () ، و replace ().
ما هو التشابه بين String و StringBuffer و StringBuilder في Java؟
يمكن استخدام الكل لإنشاء سلاسل
ما هو الفرق بين String StringBuffer و StringBuilder في Java؟
String vs StringBuffer مقابل StringBuilder |
|
سلسلة | السلسلة عبارة عن فئة Java تُستخدم لإنشاء كائن من النوع String ، وهو عبارة عن سلسلة من الأحرف. |
StringBuffer | StringBuffer هي فئة Java تُستخدم لإنشاء كائنات String ، والتي يمكن تعديلها بسلامة الخيط. |
StringBuilder | StringBuilder هي فئة تُستخدم لإنشاء كائنات سلسلة ، والتي يمكن تعديلها بدون أمان مؤشر الترابط. |
قابلية التغيير | |
سلسلة | السلسلة هي فئة ثابتة. |
StringBuffer | StringBuffer هي فئة قابلة للتغيير. |
StringBuilder | StringBuilder فئة قابلة للتغيير. |
أمان الموضوع | |
سلسلة | طرق الخيط آمنة. |
StringBuffer | طرق StringBuffer هي خيط آمنة ومتزامنة. |
StringBuilder | طرق StringBuilder ليست مترابطة آمنة وغير متزامنة. |
الأداء | |
سلسلة | السلسلة سريعة. |
StringBuffer | StringBuffer بطيء |
StringBuilder | StringBuilder سريع. |
ملخص - String vs StringBuffer vs StringBuilder في Java
يبدو أنString و StringBuffer و StringBuilder هي نفسها ، لكن لها معاني مختلفة. كل هذه فئات Java. يتمثل الاختلاف بين String و StringBuffer و StringBuilder في Java في أن String هي فئة لإنشاء كائن من النوع String ، وهي مجموعة من الأحرف ، StringBuffer هي فئة تُستخدم لتعديل السلاسل النصية وتوفير أمان الخيط ، بينما StringBuilder هو فئة تُستخدم لتعديل السلاسل التي لا توفر أمان مؤشر الترابط.
قم بتنزيل ملف PDF String مقابل StringBuffer و StringBuilder في Java
يمكنك تنزيل نسخة PDF من هذه المقالة واستخدامها للأغراض غير المتصلة بالإنترنت وفقًا لملاحظة الاقتباس. يرجى تنزيل نسخة PDF هنا الفرق بين String StringBuffer و StringBuilder في Java