String 대한 부담은 어느 언어나 - 특히나 C를 기반으로 했다면 - 마찬가지 이기 때문이겠죠 ^^
쓰고 보니 위에 답글은 StringBuilder 을 쓰셨군요
StringBuilder 과 StringBuffer 의 차이점은 다음과 같습니다.
StringBuffer가 동기화(synchronized)되고, StringBuilder는 동기화되지 않는(unsynchronized) 것이다.
따라서, 프로그램이 단일 쓰레드 환경(single thread)에서 동작해야 한다면,
StringBuilder를 쓰는 것이 낫다.
StringBuilder가 StringBuffer보다 더 효율적(efficient)이다.
String class는 read only의
String class는 read only의 character배열을 처리할때 사용하는거라,
위와 같은 접근 방식은 다분히 C언어적인 접근이네요..
원하는 알맞는 크기만큼 str을 할당해서 사용하실려면,
String str = new String("abc");
와 같이 하시고,
String을 가변배열에 넣고 추가연산을 하실려면, StringBuilder를 사용하세요..
추가적으로 아래의 두 for loop이 어떻게 다른지, 왜 퍼포먼스에 차이가 있는지를 아시면 될거 같습니다.
String 이용
String buf = new String();
for (int i = 0; i < 10000; i++) {
buf += i;
}
StringBuilder 이용
StringBuilder buf = new StringBuilder();
for (int i = 0; i < 10000; i++) {
buf.append(i);
}
답변 감사드립니다.
^^
완전 깔끔답변이네요
빈번한 추가/삭제가 일어난다면 당연히 StringBuffer
애초애 String 이 있는데 StringBuffer 이 존재하는 이유자체가
String 대한 부담은 어느 언어나 - 특히나 C를 기반으로 했다면 - 마찬가지 이기 때문이겠죠 ^^
쓰고 보니 위에 답글은 StringBuilder 을 쓰셨군요
StringBuilder 과 StringBuffer 의 차이점은 다음과 같습니다.
------------------------------------------------------------
ProgrammingHolic
------------------------------------------------------------
ProgrammingHolic
댓글 달기