블로그 이름

JAVA 객체 비교 본문

개발/Java

JAVA 객체 비교

Hide 2024. 2. 15. 20:31

JAVA 객체 비교를 하는데 객체 비교가 되어 원인을 찾아봤다..

원래 JAVA 객체끼리는 비교가 안된다 equals를 오버라이딩하여 객체 내 변수를 비교하도록 해서 비교해야하는데

다른 변수인데도 비교가 된다... equals 오버라이딩도 없다

 

원인을 찾아봤다

 

디버깅 후 객체를 찍어봤는데 두 객체가 같다

주소값이 같다

객체가 private static 으로 선언되어 있는데

static 인 경우 주소값 참조가 되어 == 비교 시 true 로 인식되었다

 

JAVA 객체 비교 로직이 어떤지도 찾아봤다

밑의 링크 참조하여

equals는 기본적으로 ==로 비교하여 반환하고

객체 비교는 우선 hashCode 값을 선 비교하고 equals로 비교하여 둘 다 동일하다면 같은 객체로 판단한다

hashCode와 주소값 찍었을때 다 같게 나왔다.

 

https://potwings.tistory.com/50