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:
Ne. | StringBuffer | Graditelj 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.0 | StringBuilder 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('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;>