[Java] String, StringBuffer and StringBuilder

고운·2023년 5월 23일

Java

목록 보기
4/10

String vs StringBuffer & StringBuilder

String은 변경 불가능하다(immutable).

String을 선언하고 나서 다른 값을 새로 할당하게 되면 원래 값은 버려져서 garbage가 된다. String을 변경할 일이 많다면 StringBuffer나 StringBuilder를 사용하면 좋다.

(String끼리 + 연산자를 사용해 더할 경우 내부에서는 StringBuffer나 StringBuilder 클래스를 사용한다.)

StringBuffer vs StringBuilder

StringBuilder : 싱글스레드 환경이나 thread-safety가 필요하지 않은 경우 사용. 더 빠르다.

StringBuffer : thread-safe operations 를 위해 사용

StringBuilder 사용 예

  • String은 특정 인덱스의 문자를 다른 문자로 replace 하는 것이 불가능하다. 이럴 때 StringBuilder를 사용할 수 있다.
//my_string이라는 string의 3번째 문자를 a로 바꾸려고 할 때
StringBuilder sb=new StringBuilder(my_string);
sb.setCharAt(3,'a');
my_string = sb.toString();
  • 특정 인덱스의 문자열 삭제
sb.deleteCharAt(index);
profile
백엔드 개발자

0개의 댓글