
[Java] String 객체 특징 ( ==와 equals의 차이점 )
·
Java/자바 이론
Stirng도 당연히 클래스이므로 클래스의 특징을 모두 지니고 있다. 하지만 워낙 자주 사용되다보니, 특별한 2가지의 특징이 있다. 1. 한 번 정의된 문자열은 변경할 수 없다. = 문자열의 내용을 변경하면 JVM은 수정하는 것이 아니라, 새로운 객체를 생성하고 기존의 객체를 버린다. 2. 문자열 리터럴을 바로 입력해 객체를 생성할 때 같은 문자열끼리 객체를 공유한다. ( => 메모리의 효율성 ) s1, s2처럼 String 객체를 생성하면,먼저 String pool에 같은 값이 있는지 확인한다. 만약 있다면 그 주소값을 리턴하고 없다면 새로운 객체를 만들어 String pool에 할당한 뒤 그 주소값을 리턴한다. s3처럼 new로 객체를 생성하면, 다른 객체들처럼 강제로 Heap 영역에 생성하고 그 주..