StringBuffer and StringBuilder 의 차이
StringBuffer 와 Stringbuilder 사이에는 많은 차이가 있습니다.
그 차이는 아래와 같습니다.
1) StringBuffer 스트링버퍼
스트링 버퍼는 동기화됩니다. 즉 스레드가 안전합니다.
두 개의 스레드는 동시에 스트링 버퍼의 메소드를 요청할 수 없습니다.
1-1) StringBuilder 스트링빌더
스트링 빌더는 반대로 동기화 되지 않습니다. 다시 말하면 스레드가 안전하지 않습니다.
두 개의 스레드는 동시에 스트링버퍼의 메소드를 요청할 수 있습니다.
2) StringBeffer 스트링버퍼
스트링 버퍼는 스트링 빌더보다 효율성이 떨어집니다.
2-2) StringBuiler 스트링빌더
스트링 빌더는 스트링 버퍼보다 효율성이 뛰어납니다.
StringBuffer 스트링버퍼 예시
public class BufferTest{
public static void main(String[] args){
StringBuffer buffer=new StringBuffer("hello");
buffer.append("java");
System.out.println(buffer);
}
}
--> hellojava
StringBuilder 스트링빌더 예시
public class BuilderTest{
public static void main(String[] args){
StringBuilder builder=new StringBuilder("hello");
builder.append("java");
System.out.println(builder);
}
}
--> hellojava
performance test of StringBuffer and StringBuiler
ㄴ 스트링 버퍼와 스트링 빌더의 성능테스트
스트링 버퍼와 스트링 빌더 클래스의 성능 체크를 위한 코드를 봅시다.
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; i++){
sb2.append("Tpoint");
}
System.out.println("Time taken by StringBuilder: " + (System.currentTimeMillis() - startTime) + "ms");
}
}
소요시간
StringBuffer: 16ms
StringBuilder: 0ms
영어원문내용출처 : http://www.javatpoint.com/
번역,의역 및 작성 : 초코토끼
검수 : 개발토끼
오역 및 오타의 지적은 겸손히 받겠습니다.
'IT Story > about Java' 카테고리의 다른 글
Java String 자바 스트링 contains , endsWith , equals (0) | 2015.10.16 |
---|---|
Java String 자바 스트링 charAt , compareTo , concat (0) | 2015.10.14 |
Java toString() method (0) | 2015.10.12 |
스트링과 스트링버퍼의 차이 [java, String and StringBuffer] (0) | 2015.10.08 |
Java StringBuffer class (0) | 2015.10.06 |