오늘 책을 읽은 내용을 정리하고자 글을 적어봅니다.
Java 개발 시에 메모리와 응답속도의 많은 영향을 미치는 것중
하나인 String 클래스.
왜!? 라고 물으신다면, 자세하게 설명하기는 애매하지만.
String 클래스에서 + 를 사용하여 글자를 추가할 시에
계속 해서 String 객체를 생성하게 되고, 기존에 있던 객체는
GC의 대상의 되어 메모리의 사용량이 늘어나는 것입니다.
이에 비해 StringBuilder 와 StringBuffer 의 경우에는
기존의 객체에 계속 추가를 함으로써, 객체를 추가적으로 생성하지
않아 메모리의 사용량이 많이 증가하지 않는 것입니다.
StringBuilder 와 StringBuffer 의 차이점에 대한 내용 설명이라면,
StringBuffer 의 경우는 안전한 스레드의 확보.
StringBuilder 의 경우는 스레드고 뭐고 상관없을 때.
사용하면 될듯합니다.
하.지.만
나름 Sun에서 이것저것 열심히 대처 방안을 내놓았는 듯 한데요.
String 클래스를 사용한 뒤에 컴파일을 하게 되면,
자동으로 String 클래스를 StringBuilder 로 바꿔줍니다...
그렇다면!!!
그냥 String 클래스를 써야 하느냐!!!
아쉽게도. 루프문의 경우에 사용하는 String 클래스의 경우에는
계속 객체를 추가한다고 합니다.
그러니깐 결론은.. 가려서 쓰는게 겸사겸사 좋다는 것이겠죠 ^^
이상 I's 였습니다.
'program study' 카테고리의 다른 글
| [정규 표현식] 문자 집합으로 찾기 (0) | 2010.05.07 |
|---|---|
| [정규 표현식] 간단한 문자열 찾기, \(역슬래쉬를 이용한) (0) | 2010.04.29 |
| [Struts2] 아키텍처 설명 (0) | 2010.02.22 |
| [Struts2] 필요한 lib파일 (0) | 2010.02.20 |
| [Struts2] 기본적인 흐름 (0) | 2010.02.20 |