문자열은 보통 String 으로 많이 사용한다.
이 String은 불변 객체로, 한 번 생성되면 변경할 수 없다.
❗ + 연산자 를 사용해서 문자열 객체 더할 수 있잖아요 ❗
그때 바로 새로운 문자열 객체가 생성된다는 것.
이때 StringBuilder 는 변경 가능한 문자열을 만들어 주기 때문에 String 을 연산하는 대신 사용할 수 있다.

위의 StringExample 경우
1. result += "Hello" + i + " ";는 문자열을 반복해서 연결한다.
2. 매번 문자열을 연결할 때마다 새로운 String 객체가 생성된다.
3. 반복 횟수가 많아지면 성능에 영향을 미칠 수 있다.

StringBuilder를 사용했을 때
1. StringBuilder는 내부적으로 가변 배열을 사용하여 문자열을 효율적으로 조작한다.
2. result.append("Hello").append(i).append(" ");는 기존 버퍼에 문자열을 추가합니다.
3. 새로운 객체를 생성하지 않으므로 성능이 훨씬 뛰어나다.