본문 바로가기

program study

[JAVA] String 과 StringBuilder, StringBuffer

오늘 책을 읽은 내용을 정리하고자 글을 적어봅니다.

Java 개발 시에 메모리와 응답속도의 많은 영향을 미치는 것중
하나인 String 클래스.

왜!? 라고 물으신다면, 자세하게 설명하기는 애매하지만.

String 클래스에서  + 를 사용하여 글자를 추가할 시에
계속 해서 String 객체를 생성하게 되고, 기존에 있던 객체는
GC의 대상의 되어 메모리의 사용량이 늘어나는 것입니다.

이에 비해 StringBuilder 와 StringBuffer 의 경우에는
기존의 객체에 계속 추가를 함으로써, 객체를 추가적으로 생성하지
않아 메모리의 사용량이 많이 증가하지 않는 것입니다.

StringBuilder 와 StringBuffer 의 차이점에 대한 내용 설명이라면,

StringBuffer 의 경우는 안전한 스레드의 확보.
StringBuilder 의 경우는 스레드고 뭐고 상관없을 때.
사용하면 될듯합니다.

하.지.만
나름 Sun에서 이것저것 열심히 대처 방안을 내놓았는 듯 한데요.
String 클래스를 사용한 뒤에 컴파일을 하게 되면,
자동으로 String 클래스를 StringBuilder 로 바꿔줍니다...
그렇다면!!!
그냥 String 클래스를 써야 하느냐!!!

아쉽게도. 루프문의 경우에 사용하는 String 클래스의 경우에는
계속 객체를 추가한다고 합니다.

그러니깐 결론은.. 가려서 쓰는게 겸사겸사 좋다는 것이겠죠 ^^

이상 I's 였습니다.