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/

번역,의역 및 작성 : 초코토끼

검수 : 개발토끼

오역 및 오타의 지적은 겸손히 받겠습니다.




+ Recent posts