다음과 같이 많은 문자를 더한다고 했을 때, 총 3개의 String
클래스가 추가로 생성된다. 중간에 만들어진 new String("AB")
와 new String("ABC")
는 제대로 사용되지 않고 GC의 대상이 된다.
String str = "A" + "B" + "C" + "D";
String str = String("A") + String("B") + String("C") + String("D");
String str = new String("AB") + String("C") + String("D");
String str = new String("ABC") + String("D");
String str = new String("ABCD");
불변인 String
클래스의 단점은 문자를 변경할 때마다 새로운 객체를 생성해야 한다는 점이다. 문자의 변경이 많을수록 메모리 자원을 더 많이 사용하게되어 비효율적이다. 이런 문제를 해결하기 위해 자바는 가변 String
인 StringBuilder
를 제공한다.
StringBuilder
는 여러 메서드를 사용해 문자를 변경할 수 있다. 문자열 변경이 다 끝나면 안전한(불변) String
으로 변환하는 것이 좋다.
append()
: 여러 문자열을 추가한다.insert()
: 특정 위치에 문자열을 삽입한다.delete ()
: 특정 범위의 문자열을 삭제한다.reverse()
: 문자열을 뒤집는다.오늘은 머리도 아프고 몸 상태가 안좋아서 집중을 잘 하지 못했다. 건강 관리를 잘하자..!