• 로그인 함 해보끄나?

  • Sarangnamu.net June 17, 2003
    Home Login Profile Study Open Project Q&A Google Code
    C++ 프로그래머 Java 맛보기 #25
    Last Modify : 20 February, 2011(10:44)
    이번에는 StringBuilder 에 대해서 알아보겠다. StringBuilder 는 StringBuffer 비슷하나 좀더 빠르게 동작 하는 놈으로 계속해서 증가되는 데이터를 입력할 때 사용하는 것이다. 인스턴스를 처음하게 되면 16 자를 사용할 수 있는 메모리가 할당되고 append 할 때 배수로 메모리를 realloc 하게 된다. 옵션으로 처음 값을 지정해서 인스턴스를 할 수 있다. StringBuilder 는 반드시 단일 스레드 에서 동작해야 하고 멀티 스레드의 환경일 경우는 StringBuffer를 이용해야 한다. public class StringDemo {     public static void main(String[] args) {         String palindrome = "Dot saw I was Tod";         int len = palindrome.length();         char[] tempCharArray = new char[len];         char[] charArray = new char[len];                  // put original string in an array of chars         for (int i = 0; i < len; i++) {             tempCharArray[i] = palindrome.charAt(i);         }                  // reverse array of chars         for (int j = 0; j < len; j++) {             charArray[j] = tempCharArray[len - 1 - j];         }                  String reversePalindrome = new String(charArray);         System.out.println(reversePalindrome);     } } 예제를 보도록 하자 먼저 위와 같이 문자열 관련 처리 하는 방법이 있긴 하지만.. public class StringBuilderDemo {     public static void main(String[] args) {         String palindrome = "Dot saw I was Tod";                  StringBuilder sb = new StringBuilder(palindrome);                  sb.reverse(); // reverse it                  System.out.println(sb);     } 이렇게 처리할 수도 있다. ps String 에 concat 과 무슨 차이가 있으려다 하고 검색을 해보니 대충 이런 결과로 모아지고 있다. String vs. StringBuilder – Big string and small appends • StringBuilder 가 좋은 선택이다. – Big string and big appends: • StringBuilder 가 연산이 반복될수록 좋은 performance 를 가져온다. – Small string big appends: • StringBuilder입장에서는 bad case이다. – Small string, small appends: • StringBuilder buffer capacity가 optimized 되거나, 알려진 concatenation pattern이라면, StringBuilder가 좋은 선택이 될 수 있다. ps2 String.concat 의 경우.. std::string 에 append 처럼 되는 게 아니고 join 된 stringreturn 한다

    Comment


    입력하3 1498429820



    Locations of visitors to this page