Equals 와 == 의 차이

지인호·2022년 1월 3일
0

TIL

목록 보기
4/28
post-thumbnail

“hello” == “hello” but, “hello”.equals(new String(”hello”)) is wrong...

== 는 연산자이지만 equals() 는 최상위클래스(Object) 에 존재하는 메서드이다.

형태의 차이

equals() 는 최상위 클래스인 Object 에 존재하는 메서드이다.

따라서 오버라이딩을 통한 수정 또한 가능하다.

그러나, == 은 비교를 위한 연산자이다.

따라서 오버라이딩을 통한 수정이 불가능하다 (Java 는 연산자 오버라이딩을 지원하지 않는다)

동작 방법

Object.equals() 메서드는 대상이 가진 값을 비교하지만,

== 연산자는 대상의 주소값을 비교한다.

또한, equals() 는 오버라이딩이 가능하므로, 하위 클래스에서 논리적 동치성을 기반으로 equals 를 재정의 할 수 있다.

로우레벨에서의 동작 원리는 링크 참조

profile
테오의 스프린트 17기 퍼실리테이터

0개의 댓글