توفر Java ثلاث فئات لتمثيل سلسلة من الأحرف: String وStringBuffer وStringBuilder. فئة String هي فئة غير قابلة للتغيير بينما فئات StringBuffer وStringBuilder قابلة للتغيير. هناك العديد من الاختلافات بين StringBuffer وStringBuilder. تم تقديم فئة StringBuilder منذ الإصدار JDK 1.5.
فيما يلي قائمة بالاختلافات بين StringBuffer وStringBuilder:
لا. | StringBuffer | StringBuilder |
---|---|---|
1) | StringBuffer هو متزامن أي موضوع آمن. هذا يعني أن خيطين لا يمكنهما استدعاء أساليب StringBuffer في وقت واحد. | StringBuilder هو غير متزامنة أي ليس خيطًا آمنًا. هذا يعني أنه يمكن لخيطين استدعاء أساليب StringBuilder في وقت واحد. |
2) | StringBuffer هو أقل كفاءة من StringBuilder. | StringBuilder هو أكثر فعالية من StringBuffer. |
3) | تم تقديم StringBuffer في Java 1.0 | تم تقديم StringBuilder في Java 1.5 |
مثال على StringBuffer
BufferTest.java
// برنامج جافا لتوضيح استخدام فئة StringBuffer. public class BufferTest{ public static void main(String[] args){ StringBuffer buffer=new StringBuffer('hello'); buffer.append('java'); System.out.println(buffer); } }
انتاج:
hellojava
مثال على StringBuilder
BuilderTest.java
بيض عيد الفصح في الروبوت
//Java Program to demonstrate the use of StringBuilder class. public class BuilderTest{ public static void main(String[] args){ StringBuilder builder=new StringBuilder('hello'); builder.append('java'); System.out.println(builder); } }
انتاج:
hellojava
اختبار أداء StringBuffer وStringBuilder
دعونا نرى الكود للتحقق من أداء فئات StringBuffer و StringBuilder.
ConcatTest.java
//Java Program to demonstrate the performance of StringBuffer and StringBuilder classes. 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; sb2.append('tpoint'); stringbuilder: < pre> <p> <strong>Output:</strong> </p> <pre> Time taken by StringBuffer: 16ms Time taken by StringBuilder: 0ms </pre> <hr></10000;>
10000;>