logo

A StringBuffer és a StringBuilder közötti különbség

A Java három osztályt biztosít egy karaktersorozat megjelenítésére: String, StringBuffer és StringBuilder. A String osztály egy megváltoztathatatlan osztály, míg a StringBuffer és StringBuilder osztályok változtathatók. Sok különbség van a StringBuffer és a StringBuilder között. A StringBuilder osztály a JDK 1.5 óta kerül bevezetésre.

A StringBuffer és a StringBuilder közötti különbségek listája az alábbiakban található:

A StringBuffer és a StringBuilder közötti különbség
Nem.StringBufferStringBuilder
1)A StringBuffer az szinkronizálva azaz cérnabiztos. Ez azt jelenti, hogy két szál nem tudja egyszerre hívni a StringBuffer metódusait.A StringBuilder az nem szinkronizált azaz nem cérnabiztos. Ez azt jelenti, hogy két szál egyszerre hívhatja meg a StringBuilder metódusait.
2)A StringBuffer az kevésbé hatékony mint a StringBuilder.A StringBuilder az hatékonyabb mint a StringBuffer.
3)A StringBuffert a Java 1.0-ban vezették beA StringBuilder a Java 1.5-ben jelent meg

StringBuffer példa

BufferTest.java

//Java program a StringBuffer osztály használatának bemutatására. public class BufferTest{ public static void main(String[] args){ StringBuffer buffer=new StringBuffer('hello'); buffer.append('java'); System.out.println(puffer); } }

Kimenet:

 hellojava 

StringBuilder példa

BuilderTest.java

láb vs láb
 //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); } } 

Kimenet:

 hellojava 

A StringBuffer és a StringBuilder teljesítménytesztje

Lássuk a kódot a StringBuffer és StringBuilder osztályok teljesítményének ellenőrzéséhez.

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(&apos;Java&apos;); 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;>