logo

Ero StringBufferin ja StringBuilderin välillä

Java tarjoaa kolme luokkaa edustamaan merkkijonoa: String, StringBuffer ja StringBuilder. String-luokka on muuttumaton luokka, kun taas StringBuffer- ja StringBuilder-luokat ovat muuttuvia. StringBufferin ja StringBuilderin välillä on monia eroja. StringBuilder-luokka on otettu käyttöön JDK 1.5:n jälkeen.

Alla on luettelo StringBufferin ja StringBuilderin välisistä eroista:

Ero StringBufferin ja StringBuilderin välillä
Ei.StringBufferStringBuilder
1)StringBuffer on synkronoitu eli lankaturvallinen. Se tarkoittaa, että kaksi säiettä ei voi kutsua StringBufferin menetelmiä samanaikaisesti.StringBuilder on ei-synkronoitu eli ei lankaturvallinen. Se tarkoittaa, että kaksi säiettä voi kutsua StringBuilderin menetelmiä samanaikaisesti.
2)StringBuffer on vähemmän tehokasta kuin StringBuilder.StringBuilder on tehokkaampi kuin StringBuffer.
3)StringBuffer otettiin käyttöön Java 1.0:ssaStringBuilder esiteltiin Java 1.5:ssä

StringBuffer esimerkki

BufferTest.java

//Java-ohjelma, joka osoittaa StringBuffer-luokan käytön. public class BufferTest{ public static void main(String[] args){ StringBuffer buffer=new StringBuffer('hello'); buffer.append('java'); System.out.println(puskuri); } }

Lähtö:

 hellojava 

StringBuilder esimerkki

BuilderTest.java

verkkokerros tietokoneverkoissa
 //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); } } 

Lähtö:

 hellojava 

StringBufferin ja StringBuilderin suorituskykytesti

Katsotaanpa koodia StringBuffer- ja StringBuilder-luokkien suorituskyvyn tarkistamiseksi.

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;>