logo

Atšķirība starp StringBuffer un StringBuilder

Java nodrošina trīs klases, lai attēlotu rakstzīmju secību: String, StringBuffer un StringBuilder. String klase ir nemainīga klase, savukārt StringBuffer un StringBuilder klases ir mainīgas. Starp StringBuffer un StringBuilder ir daudz atšķirību. StringBuilder klase ir ieviesta kopš JDK 1.5.

Tālāk ir sniegts atšķirību saraksts starp StringBuffer un StringBuilder:

Atšķirība starp StringBuffer un StringBuilder
Nē.StringBufferStringBuilder
1)StringBuffer ir sinhronizēts i., diegu droši. Tas nozīmē, ka divi pavedieni nevar vienlaikus izsaukt StringBuffer metodes.StringBuilder ir nesinhronizēts i., nav vītnes drošs. Tas nozīmē, ka divi pavedieni vienlaikus var izsaukt StringBuilder metodes.
2)StringBuffer ir mazāk efektīva nekā StringBuilder.StringBuilder ir efektīvāks nekā StringBuffer.
3)StringBuffer tika ieviests Java 1.0StringBuilder tika ieviests Java 1.5

StringBuffer piemērs

BufferTest.java

//Java programma, lai demonstrētu klases StringBuffer izmantošanu. public class BufferTest{ public static void main(String[] args){ StringBuffer buffer=new StringBuffer('sveiki'); buffer.append('java'); System.out.println(buferis); } }

Izvade:

 hellojava 

StringBuilder piemērs

BuilderTest.java

unix izveidot direktoriju
 //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); } } 

Izvade:

 hellojava 

StringBuffer un StringBuilder veiktspējas pārbaude

Apskatīsim kodu, lai pārbaudītu StringBuffer un StringBuilder klašu veiktspēju.

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