[CS] 14) 문자 클래스

songh·2024년 2월 26일
0

CS지식

목록 보기
15/35
post-thumbnail

String의 특징

new 연산자를 통해 생성된 인스턴스의 메모리 공간은 변하지 않는다.(immutable) Garbage Collector로 제거되어야 하고 문자열 연산시 새로 객체를 만드는 오버헤드가 발생한다. 객체가 불변하므로 멀티스레드 환경에서 동기화를 신경쓸 필요가 없기 때문에 조회연산에서 매우 큰 장점을 가지고 있다.

💡String클래스는 문자열 연산이 적고 조회가 많은 멀티스레드 환경에서 좋다.

StringBuffer와 StringBuilder 특징

공통점

new 연산으로 클래스를 한번만 만들며 문자열 연산시 새로 객체를 만들지 않고 크기를 변경시킨다. StringBuffer와 StringBuilder클래스의 메서드는 동일하다.

차이점

StringBuffer는 Thread-safe하지만 StringBuilder는 Thread-safe하지 않다. StringBuffer가 Thread-safe한 이유는 메서드에 synchronized 키워드를 사용하기 때문에 그렇다. 자바에서 이 키워드는 여러 스레드가 하나의 자원에 접근하려고 할때, 현재 데이터를 사용주인 스레드를 제외하고 나머지 스레드는 데이터에 접근하지 못하도록 막는 역할을 한다.

💡StringBuffer 클래스 : 문자열 연산이 많은(추가, 수정, 삭제) 멀티스레드 환경에 적합하고
StringBuilder 클래스 : 문자열 연산이 많은(추가, 수정, 삭제) 싱글 스레드나 스레드를 신경쓰지 않는 환경에 적합하다.

0개의 댓글

관련 채용 정보