==
-
Java - '==' 연산자 와 'equals()'를 이용한 문자열 비교Language/Java 2022. 9. 20. 15:25
문자열 비교 String 변수 생성 방식 String 변수를 생성할 때는 다음과 같은 두 가지 방법이 있다. 1. 리터럴을 이용한 방식 2. new 연산자를 이용한 방식 위 두 가지 방식에는 큰 차이점이 존재한다. 리터럴 방식을 사용해서 String을 생성하면 String Constant Pool이라는 영역에 존재하게 되고, new 방식을 사용하게 되면 Heap 영역에 존재하게 된다. String을 리터럴로 선언할 경우 내부적으로 String의 intern() 메서드가 호출되고 intern() 메서드는 주어진 문자열이 String Constant Pool에 존재하는지 검색한다. 만약, 주어진 문자열이 존재하는 경우 해당 문자열의 주소 값을 반환하고, 없는 경우에는 String Constant Pool에 ..
-
Java - 동일성(identity) & 동등성(equality)Language/Java 2022. 3. 3. 16:47
동일성(identity) & 동등성(equality) 동일성이란? 동일성은 동일하다는 뜻으로 두 개의 객체가 완전히 같은 경우를 의미한다. 여기서 완전히 같다는 뜻은 두 객체가 사실상 하나의 객체로 봐도 무방하며, 주소 값이 같기 때문에 두 변수가 같은 객체를 가리키게 된다. 위 사진에서 refVar1은 객체1을 가리키고 있고, refVar2와 refVar3는 객체2를 가리키고 있다. refVar2와 refVar3는 동일한 객체를 가리키고 있으므로, 두 변수는 동일하다고 이야기할 수 있다. 그리고 해당 변수가 동일한지 "==" 연산자를 통해 판별할 수 있다. 추가적으로, Primitive Type은 객체가 아니라 주소가 없으므로 "==" 연산자를 사용하였을 때 내용이 같으면 동일하다고 말한다. 동등성이란..