반응형

[IT 개발자 면접 대비문제] String과 StringBuffer의 차이점


1. String : Java에서 String은 불변객체(immutable instance)다. 

             한번 생성되면 내용이 변경되지 않는다. 

             예를들어 

             String aa = "Hello";

             aa = "world";

             라고 코딩을 한다면 최초 aa가 저장한 주소에 Hello가 기록된다. 

             그리고 두번째 라인에서 aa = "world"라고 할경우 최초 aa가 저장한 주소의 값인 Hello가 world로 변화하는것이 아니라

             aa는 새로운 메모리주소를 할당받고 그곳에 world를 기록한다. 최초 저장한 Hello가 저장된 메모리주소는 링크를 잃게되며 

             JVM 의 GC가 회수하게된다. 


2. StringBuffer : char[]배열을 사용한다. 즉, char배열의 시작 주소를 가지고 있고, char를 핸들링하는 클래스이다. 

                       따라서 내용의 추가 / 변형 / 수정 / 삭제가 자유롭다. 


3. 결론 

 - 문자열의 컨트롤이 주가되는 프로그램이라면 String대신 StringBuffer를 사용하는것이 이롭다. 

 



반응형

+ Recent posts