„Java“ pateikia tris klases, kurios atspindi simbolių seką: „String“, „StringBuffer“ ir „StringBuilder“. Styginių klasė yra nekintanti klasė, o StringBuffer ir StringBuilder klasės yra kintamos. Yra daug skirtumų tarp „StringBuffer“ ir „StringBuilder“. „StringBuilder“ klasė pristatoma nuo JDK 1.5 versijos.
Toliau pateikiamas „StringBuffer“ ir „StringBuilder“ skirtumų sąrašas:
Nr. | StringBuffer | StringBuilder |
---|---|---|
1) | StringBuffer yra sinchronizuoti t.y. saugus siūlams. Tai reiškia, kad dvi gijos negali vienu metu iškviesti StringBuffer metodų. | StringBuilder yra nesinchronizuotas y., nėra saugus siūlams. Tai reiškia, kad dvi gijos gali vienu metu iškviesti StringBuilder metodus. |
2) | StringBuffer yra mažiau efektyvus nei StringBuilder. | StringBuilder yra efektyvesnis nei StringBuffer. |
3) | StringBuffer buvo pristatytas Java 1.0 | StringBuilder buvo pristatytas Java 1.5 versijoje |
StringBuffer pavyzdys
BufferTest.java
//Java programa, skirta parodyti StringBuffer klasės naudojimą. public class BufferTest{ public static void main(String[] args){ StringBuffer buffer=new StringBuffer('labas'); buffer.append('java'); System.out.println(buferis); } }
Išvestis:
hellojava
StringBuilder pavyzdys
BuilderTest.java
paskirstymo dėsnio Būlio algebra
//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); } }
Išvestis:
hellojava
StringBuffer ir StringBuilder našumo testas
Pažiūrėkime kodą, skirtą „StringBuffer“ ir „StringBuilder“ klasių našumui patikrinti.
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('Java'); 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;>
10000;>