StringBuilder

    String, StringBuilder, StringBuffer 사용 경우

    String을 이어 붙이는 방법들에 대해 알아보고, 어떤 방법이 효율적인지 생각해보자! String은 불변한다! String의 속성을 생각해보면 String은 불변(immutable)하다. 그런데 String에다+ 연산자를 사용해서 이어 붙여 사용하곤 한다. 분명 String은 불변한다고 했는데 왜 추가하면 추가하는대로 결과를 보여줄 수 있을까? 먼저, int 변수의 경우 primitive type 이기 때문에 메모리 상의 stack 공간에 값으로 저장된다. 그래서 int 변수의 값을 바꿀 수 있다. 하지만, String 변수의 경우 Reference type이므로 stack 공간에 실제 값이 저장된 heap 공간의 주소가 저장되어 있고, heap 공간 내의 Constant Pool에서 String을 저..