Ero StringBufferin ja StringBuilderin välillä

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. StringBuffer StringBuilder
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:ssa StringBuilder 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

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