intern()은 메모리 사용을 줄이기 위해 사용한다.
heap에 할당된 내용을
stack영역에 설정된(엄밀하게는 string pool) 변수들을 조회하여
중복내용이 있을 경우 heap의 메모리를 해제하고
string pool의 주소로 치환하여 사용하는 메모리를 줄여준다.
그렇기에 == 연산자를 통한 "동일객체" 비교시 동일한 객체로 인식될 수 있게 된다.
(하지만 변수들을 조회한다는 것 자체가 엄청난 부하...)
[링크 : http://ggaman.tistory.com/918]
[링크 : http://www.mimul.com/pebble/default/2008/01/02/1199269440000.html]
[링크 : http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#intern()]
heap에 할당된 내용을
stack영역에 설정된(엄밀하게는 string pool) 변수들을 조회하여
중복내용이 있을 경우 heap의 메모리를 해제하고
string pool의 주소로 치환하여 사용하는 메모리를 줄여준다.
그렇기에 == 연산자를 통한 "동일객체" 비교시 동일한 객체로 인식될 수 있게 된다.
(하지만 변수들을 조회한다는 것 자체가 엄청난 부하...)
[링크 : http://ggaman.tistory.com/918]
[링크 : http://www.mimul.com/pebble/default/2008/01/02/1199269440000.html]
[링크 : http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#intern()]
'Programming > Java' 카테고리의 다른 글
Java for문 내 변수는 매번 초기화 된다. (0) | 2014.03.13 |
---|---|
Java array (0) | 2014.03.13 |
java bytecode decompiler - javap (0) | 2014.03.12 |
java static initialize (0) | 2014.03.12 |
java 1.5 이후 추가 for-each / varargs(autoboxing) (0) | 2014.03.11 |