String

String은 new 연산을 통해 생성되면, 그 메모리가 절대 변하지 않는다.

  • , concat() 메소드를 동하여 String에 변화를 줘도, 메모리가 변경되는 것이 아닌 새로운 String을 생성하는 것이다.

그렇기 때문에 문자열 연산이 많을경우 지속적인 오버헤드가 발생한다.

<br/>

StringBuffer, StringBulider

반대로 StringBuffer와 StringBuilder는 메모리가 가변적이다.

그렇기 때문에 문자열 연산에 대하여 가변적으로 버퍼 크기를 늘려 유연한게 작동한다.

둘의 차이점은 동기화에 있다

StringBuffer는 각 메소드별로 Synchonized 키워드가 있기 때문에 멀티쓰레드 환경에서 동기화를 지원한다.

StringBuilder는 동기화를 지원하지 않는다.

0
이전 댓글 보기
등록
TOP