logo

Разлика између СтрингБуффер-а и СтрингБуилдер-а

Јава пружа три класе за представљање низа знакова: Стринг, СтрингБуффер и СтрингБуилдер. Стринг класа је непроменљива класа док су класе СтрингБуффер и СтрингБуилдер променљиве. Постоје многе разлике између СтрингБуффер-а и СтрингБуилдер-а. СтрингБуилдер класа је уведена од ЈДК 1.5.

Списак разлика између СтрингБуффер-а и СтрингБуилдер-а је дат у наставку:

Разлика између СтрингБуффер-а и СтрингБуилдер-а
Не.СтрингБуфферСтрингБуилдер
1)СтрингБуффер је синхронизовано односно безбедно за нит. То значи да две нити не могу истовремено да позивају методе СтрингБуффер-а.СтрингБуилдер је несинхронизовани тј. није сигуран нити. То значи да две нити могу истовремено да позивају методе СтрингБуилдер-а.
2)СтрингБуффер је мање ефикасан него СтрингБуилдер.СтрингБуилдер је ефикаснији него СтрингБуффер.
3)СтрингБуффер је представљен у Јави 1.0СтрингБуилдер је представљен у Јави 1.5

СтрингБуффер Пример

БуфферТест.јава

//Јава програм за демонстрацију употребе класе СтрингБуффер. публиц цласс БуфферТест{ публиц статиц воид маин(Стринг[] аргс){ СтрингБуффер буффер=нев СтрингБуффер('хелло'); буффер.аппенд('јава'); Систем.оут.принтлн(буффер); } }

Излаз:

 hellojava 

Пример СтрингБуилдер-а

БуилдерТест.јава

како позвати метод у Јави
 //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); } } 

Излаз:

 hellojava 

Тест перформанси СтрингБуффер-а и СтрингБуилдер-а

Хајде да видимо код за проверу перформанси СтрингБуффер и СтрингБуилдер класа.

ЦонцатТест.јава

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