StringBuilder
String과의 차이점은 String은 불변 속성을 갖고, StringBuilder는 가변성을 갖는다.
불변성을 갖는다라는 의미는 값을 변경하면, 기존의 String 메모리에서 값이 바뀌는 것이 아닌, String에 들어있던 값을 버리고 새로운 값을 재할당을 한다. 이때 처음에 할당한 String 메모리의 영역은 Garbage Collection에 의해 없어진다.
이런 특성으로 인해 문자열 추가,삭제, 수정 등의 연산이 자주 일어나는 경우 String을 사용하면,
heap 메모리에 많은 Garbage가 생성이 되어 프로그램 성능에 영향을 미친다.
반면, StringBuilder는 가변성을 갖기에, .append(), .delete() 등 동일 객체 내에서 문자열을 변경하는 것이 가능하다.
출처: javapapers.com
- StringBuilder 주요 메소드
- StringBuilder append(String s) : StringBuilder 뒤에 값을 붙임
- StringBuilder delete(int start , int end) : 특정 인덱스부터 인덱스까지를 삭제
- StringBuilder insert(int offet, any primitive of a char[]) : 문자를 삽입함
- StringBuilder replace(int start , int end , String s) : 일부를 String 객체로 치환
- StringBuilder reverse() : 순서를 뒤집음
- StringBuilder setCharAt(int index , char ch) : 주어진 문자를 치환
- StringBuilder indexOf(String s) : 값이 어느 인덱스에 들어있는지 확인
- StringBuilder subString(int start, int end) : start와 end 사이의 값을 잘라옴
참고
https://rlakuku-program.tistory.com/33