logo

StringBuffer와 StringBuilder의 차이점

Java는 문자 시퀀스를 나타내는 세 가지 클래스인 String, StringBuffer 및 StringBuilder를 제공합니다. String 클래스는 변경할 수 없는 클래스인 반면 StringBuffer 및 StringBuilder 클래스는 변경할 수 있습니다. StringBuffer와 StringBuilder에는 많은 차이점이 있습니다. StringBuilder 클래스는 JDK 1.5부터 도입되었습니다.

StringBuffer와 StringBuilder의 차이점 목록은 다음과 같습니다.

StringBuffer와 StringBuilder의 차이점
아니요.문자열 버퍼스트링빌더
1)스트링버퍼는 동기화됨 즉, 스레드로부터 안전합니다. 이는 두 스레드가 StringBuffer의 메서드를 동시에 호출할 수 없음을 의미합니다.스트링빌더는 비동기화 즉, 스레드로부터 안전하지 않습니다. 이는 두 스레드가 StringBuilder의 메서드를 동시에 호출할 수 있음을 의미합니다.
2)스트링버퍼는 덜 효율적 StringBuilder보다스트링빌더는 더 효율적 StringBuffer보다
삼)StringBuffer는 Java 1.0에서 도입되었습니다.StringBuilder는 Java 1.5에서 도입되었습니다.

문자열 버퍼 예

BufferTest.java

//StringBuffer 클래스의 사용을 보여주는 Java 프로그램입니다. 공개 클래스 BufferTest{ 공개 정적 void main(String[] args){ StringBuffer 버퍼=new StringBuffer('hello'); buffer.append('java'); System.out.println(버퍼); } }

산출:

 hellojava 

StringBuilder 예

BuilderTest.java

예각
 //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 

StringBuffer 및 StringBuilder의 성능 테스트

StringBuffer 및 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(&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;>