본문 바로가기

이론/알고리즘&자료구조&Java

[JAVA] String/StringBuffer/StringBuilder

String StringBuffer StringBuilder


String

"immutable" : 처음 생성된 후 변하지 않는다. 즉, +나 concat을 이용해서 새로운 문자열을 가리키게 하더라도 새로운 메모리를 할당받기 때문에 메모리 효율성문제에서 좋지 않다. 하지만 단순한 조회연산에 있어서 속도가 빠르고, 동기화를 신경쓸 필요가 없기 때문에 멀티쓰레드환경에서 사용하기 좋다.


StringBuffer/StringBuilder

"mutable": 클래스를 한 번 만들고 변경이 가능하다. 즉, 문자열 연산 시 그 시간이나 메모리 사용 효율이 String 보다 좋다. StringBuffer는 동기화 메소드를 제공하기 때문에 멀티쓰레드 환경에서 사용할 수 있고, StringBuilder는 동기화를 지원하지 않는다.

  • StringBuilder.append(char[] str) : 뒤에 붙임

  • StringBuilder.insert(index,value): 지정된 위치에 삽입함

  • StringBuilder.delete/deleteCharAt

  • StringBuilder.indexOf( String str)

  • StringBuilder.replace(int start,int end,String str)

  • StringBuilder.reverse();