String, StringBuffer, StringBuilder

dykwon·2023년 11월 21일
0

String

String은 내부 문자열을 할당할 수 있지만 수정할 수 없다.
그래서 + 연산자를 통해 문자열을 합치거나, replace() 메소드등을 사용하는 경우, Heap 메모리에 새로운 객체가 생성된다.
이는 데이터 전처리와 같은 프로세스에서 로드를 증가시킬 수 있다.

StringBuilder, StringBuffer

이 두클래스는 내부 버퍼에 문자열을 저장하고, 버퍼에서 추가/수정/삭제가 가능하도록 만들어져있다. 그래서, String처럼 새로운 객체를 생성할 필요가 없다.
StringBuffer와 StringBuilder의 차이는 ThreadSafe(스레드가 공유자원으로 접근 시 안전한가) 이다. StringBuffer의 경우 내부적으로 synchronized(스레드 동기화) 키워드가 작성되어있다.

요약

짧은 문자열 간단하게 더할때 -> String
Thread에 안전한 프로그램이 필요할 때 -> StringBuffer
Thread 안전에 대한 상관이 없을 경우 -> StringBuilder

profile
Programmer, who turns ideas into value

0개의 댓글