오늘은 자바의 equals 와 == 연산자의 차이에 대해서 알아보자 !
equals()와 ==는 자바에서 객체의 동등성을 비교하는 데 사용되지만, 의미와 사용 목적이 다릅니다. 차이를 구체적으로 이해하기 위해 예제를 중심으로 살펴보겠습니다.
== 연산자
- 비교 대상: 메모리 주소 (객체의 참조값)
- 의미: 두 객체가 같은 주소(참조값)를 가리키고 있는지 확인합니다.
- 용도: 원시 타입 비교, 객체의 참조 비교에 사용합니다.
equals() 메서드
- 비교 대상: 객체의 논리적 동등성 (값 비교)
- 의미: 두 객체의 내용이 논리적으로 같은지 확인합니다.
- 용도: equals()는 기본적으로 Object 클래스에서 정의되어 있으며, Object의 기본 구현은 ==와 동일합니다. 그러나 많은 클래스에서는 이 메서드를 재정의(override)하여 값 비교를 구현합니다.
문자열(String) 비교

- ==: false → str1과 str2는 다른 객체(서로 다른 메모리 주소를 가짐).
- equals(): true → 두 객체의 값("Hello")이 같음.
사용자 정의 클래스에서 equals()와 ==

- 위 코드에서 equals()는 Object 클래스의 기본 구현을 사용하므로, 참조 비교와 동일하게 작동합니다.
equals()를 재정의한 경우

주요 차이점 정리
