페이지

2016년 12월 21일 수요일

[Java] String vs StringBuffer vs StringBuilder

계속해서 문자열에 관한 이야기다.

이번에 공부 할 내용은 String , StringBuffer , StringBuilder에 관한 이야기이다.

위 세가지에 대한 차이점은 먼저 String 과 나머지 StringBuffer , StringBuilder에 대한

차이가 있다.

String은 모두가 잘 알 다시피 Immutable 하단게 가장 큰 특징이다. 만약에 concat을

하게 된다면 새롭게 string 객체를 생성하기 때문에 수행시간에 있어서 오래 걸린다.

그러나 StringBuffer , StringBuilder 같은 경우는 Mutable 하기 때문에 buffer size를

넘지 않는 한 계속해서 append , delete , insert 등 자유로운 변환이 가능해진다.

그 다음 Mutable 한 두 개의 클래스의 다른 점은 multi - threading 환경에서 동기화의

문제가 있다.

StringBuffer 같은 경우는 내부 함수가 synchronized 되있어 safe한 반면 StringBuilder 같은

경우는 그렇지 않아 unsafe하다.

그러나 성능 적인 면에서는

  •  String < StringBuffer < StringBuilder (concat 연산 수행 , 단일 threading)
  •  StringBuffer < StringBuilder < String (concat 연산 x , 단일 threading)
와 같은 성능을 보이기 때문에 상황에 따라서 합리적인 선택을 해야 될 것 같다.



"개인적인 느낀점"

위와 같은 정보도 사실 초보 개발 단계에서는 크게 고려하지 않아도 될 사항이지만

내가 나중에 더 많은 걸 배우고 개발하게 될 때 이러한 지식들은 중요한 밑바탕일 될 것

같다.

댓글 없음:

댓글 쓰기