자바 문자열 객체 심화

이동규·2023년 6월 14일

JAVA

목록 보기
7/7

자바 객체를 변태적으로 알아보자

객체명이 동일하다고 같은 변수가 아니다. why? 객체의 참조 값이 다를 수 있기 때문이다. String 객체를 비교할 때 ==을 사용하지 않는이유가 바로 그것이다.Java에서 문자열을 리터럴형태로 선언하게 되면 내부적으로 String constant영역이 생긴다. 리터럴의 새로운 문자열 생성시 String intern() 메소드가 호출된다. intern() 메소드는 주어진 문자열이 constant pool에 존재하는지 검색 있다면 그 주소값을 반환 없다면 String constant pool에 넣고 새로운 주소값을 반환한다. 즉, 기존에 동일 문자열이 있다면 그 문자열의 주소를 공유 한다.


0개의 댓글