[Java] : String, StringBuilder, StringBuffer

dohyoungK·2024년 3월 19일
0

면접 스크립트

목록 보기
18/25
post-thumbnail

[Java] : String, StringBuilder, StringBuffer


자바에서 대표적으로 문자열을 다루는 자료형 클래스로 String, StringBuilder, StringBuffer를 지원한다. 위 3가지 클래스 자료형은 모두 문자열을 다루는데 사용되지만, 사용 목적에 따라 쓰임새가 달라진다.

String

자바에서 String은 불변한 문자열을 처리하기 위한 클래스이다. String 객체가 생성되면 그 값은 변경되지 않고 새로운 객체로 추가, 변경된다. String 자료형으로도 + 연산이나 concat()을 사용해 문자열을 이어붙일 수 있지만, 이 방법은 내용이 합쳐진 새로운 String 인스턴스를 생성하게 되어 문자열을 많이 결합할수록 메모리 낭비와 속도 저하라는 단점이 존재한다.

StringBuilder

자바에서 StringBuilder는 가변한 문자열을 처리하기 위한 클래스이다. 새로운 문자열을 추가하거나 변경하게 되면 기존 객체로 추가, 변경된다. 동기화를 지원하지 않기 때문에 StringBuffer와 다르게 멀티쓰레드 환경에서 안정적이지 않으며, StringBuilder는 싱글쓰레드 환경에서 StringBuffer 보다 더 빠른 성능을 가진다.

StringBuffer

자바에서 StringBuffer는 가변한 문자열을 처리하기 위한 클래스이다. 새로운 문자열을 추가하거나 변경하게 되면 기존 객체로 추가, 변경된다. 동기화 키워드를 지원해 멀티쓰레드 환경에서 안전하다.


StringStringBuilderStringBuffer
선언 방식String str = "Hello";StringBuilder sb = new StringBuilder("Hello");StringBuffer sb = new StringBuffer("Hello");
문자열 추가str += "World";sb.append("World");sb.append("World");
클래스 종류불변 클래스가변 클래스가변 클래스
사용 목적문자열 추가와 변경이 발생하지 않는 경우 사용단일쓰레드 환경에서 문자열 추가 변경이 자주 발생하는 경우 사용멀티쓰레드 환경에서 문자열 추가 변경이 자주 발생하는 경우 사용

0개의 댓글