logo

Razlika između StringBuffer i StringBuilder

Java nudi tri klase za predstavljanje niza znakova: String, StringBuffer i StringBuilder. Klasa String je nepromjenjiva klasa dok su klase StringBuffer i StringBuilder promjenjive. Postoje mnoge razlike između StringBuffer i StringBuilder. Klasa StringBuilder uvedena je od JDK 1.5.

Popis razlika između StringBuffer i StringBuilder dan je u nastavku:

Razlika između StringBuffer i StringBuilder
Ne.StringBufferGraditelj nizova
1)StringBuffer je sinkronizirano tj. niti sigurno. To znači da dvije niti ne mogu pozvati metode StringBuffera istovremeno.StringBuilder je nesinkronizirano tj. nije sigurno za niti. To znači da dvije niti mogu istovremeno pozivati ​​metode StringBuilder-a.
2)StringBuffer je manje učinkovit nego StringBuilder.StringBuilder je učinkovitije nego StringBuffer.
3)StringBuffer je predstavljen u Javi 1.0StringBuilder je predstavljen u Javi 1.5

Primjer StringBuffer

BufferTest.java

//Java program za demonstraciju upotrebe klase StringBuffer. public class BufferTest{ public static void main(String[] args){ StringBuffer buffer=new StringBuffer('hello'); međuspremnik.append('java'); System.out.println(buffer); }}

Izlaz:

 hellojava 

Primjer StringBuilder

BuilderTest.java

nedostatke interneta
 //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); } } 

Izlaz:

 hellojava 

Test izvedbe StringBuffera i StringBuildera

Pogledajmo kod za provjeru performansi klasa StringBuffer i 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(&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;>