Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 StringBuilder를 StringBuffer와 어떻게 비교할 수 있습니까?

<시간/>

문자열 버퍼 개체는 일반적으로 다중 스레드 환경에서 사용하기에 안전합니다. 여러 스레드가 동일한 StringBuffer 액세스를 시도하는 경우 동시에 객체. StringBuilder 스레드로부터 안전한 StringBuff를 대체합니다. r 동기화 가 없기 때문에 훨씬 빠르게 작동합니다. 행동 양식. 단일 스레드에서 많은 문자열 작업을 수행하면 많은 성능을 얻을 수 있습니다. 이 클래스를 사용할 때.

예시

public class CompareBuilderwithBufferTest {
   public static void main(String []args) {
      stringBufferTest();
      stringBuilderTest();
   }
   public static void stringBufferTest() {
      long startTime = System.nanoTime();
      StringBuffer sb = new StringBuffer();
      for (int i=0; i < 1000; i++) {
         sb.append((char) 'a');
      }
      System.out.println("StringBuffer test: " + (System.nanoTime() - startTime));
   }
   public static void stringBuilderTest() {
      long startTime = System.nanoTime();
      StringBuilder sb = new StringBuilder();
      for (int i=0; i < 1000; i++) {
         sb.append((char) 'a');
      }
      System.out.println("StringBuilder test: " + (System.nanoTime() - startTime));
   }
}

출력

StringBuffer test: 192595
StringBuilder test: 85733