본문 바로가기

CS

String,StringBuillder,StringBuffer

728x90

String

불변(immutable)하는 특징

할당된 메모리 공간이 변하지 않는다.

concat이나 + 연산자를 통해 다른 문자열을 붙일 경우 기존 문자열에 새로운 문자열을 붙이는 것이 아니라

새로운 String 객체를 만든 후 새 String 객체에 연결된 문자열을 저장하고 그 객체를 참조하도록 한다.

짧은 문자열을 더할 경우

문자열 연산이 적고 멀티스레드 환경일 경우

StringBuffer

변함(Mubtable)하는 특징

문자열 연산으로 기존 객체의 공간이 부족하게 되는 경우 버프크기를 늘리며 유연하게 동작한다.

스레드에 안전한 프로그램이 필요할 때나, 개발 중인 시스템의 부분이 스레드에 안전한지 모를 경우

문자열 연산이 많고 멀티스레드 환경일 경우

StringBuilder

스레드에 안전한지 여부가 전혀 관계 없는 프로그램을 개발할 경우

문자열 연산이 많고 단일스레드이거나 동기화를 고려하지 않아도 되는 경우

728x90