My Blog

자바 String, StringBuilder 차이 본문

자바

자바 String, StringBuilder 차이

JAESG 2023. 2. 27. 11:49

자바가 String을 만들 때

String a = "*";

을 하면 실제로 힙에는 * 이라는 변수(실제로는 참조변수)가 만들어진다.

여기서 

a += "*";을 하면

* 이라는 값은 냅두고

** 이라는 값을 또 추가해서 만든다.

이게 여러 개가 되면 메모리 낭비가 엄청 심해진다.

 

그래서 StringBuilder을 사용하면 이 문제를 해결할 수 있다.

StringBuilder sb = new StringBuilder();

sb.appned("*"); //문자열 추가

sb.toString(); //출력

StringBuilder는 내부적으로 sb하나만 가지고 있는 상황에서 문자열을 계속해서 추가하는 것이다.

그래서 쓸데없는 메모리 낭비가 없다.

728x90
Comments