흔히들 아무 생각 없이 String 클래스를 사용해서 문자열을 다음과 같이 사용했엇다.
String rt = "Hello";
rt += " world ";
rt += "i am "
rt += "a boy "...
이런식으로 문자열을 이어나가 생성을 했었다.
하지만 이러한 방식은 '+='을 할 때마다 새로운 String 클래스 객체를 생성해서
JVM 메모리에 많은 String 객체가 생성되는 단점이 있다고 한다.
그래서 사용되는게 StringBuffer이다.
StringBuffer는 클래스를 초기화한 객체 하나만 생성되므로
JVM 메모리를 보다 효율적으로 사용할 수 있다.
두가지 방법의 성능을 비교한결과(시간) 약 150배의 시간이 절약된걸 볼 수 있었다.
맥북프로2015 기준 1만개 String과 StringBuffer객체 생성 실험).
작은 프로젝트인 경우 뭐 상관 없겠지만,
규모가 있는 프로젝트라면 작업이 누적되는 경우 상당히 많은 차이가 발생할 것이다.
앞으로 하는 팀 프로젝트도 이와 같이 리팩토링을 해봐야 할 것 같다
댓글
댓글 쓰기