728x90
반응형
질문 : Java에서 ==와 equals ()의 차이점은 무엇입니까?
이 내용을 올바르게 이해했는지 명확히하고 싶었습니다.
==
는 참조 비교입니다. 즉, 두 개체가 동일한 메모리 위치를 가리 킵니다..equals()
는 객체의 값 비교로 평가됩니다.
답변
일반적으로 귀하의 질문에 대한 대답은 "예"이지만 ...
.equals(...)
는 비교하기 위해 작성된 내용 만 비교합니다.- 클래스가 equals 메서드를 재정의하지 않으면이 메서드를 재정의 한 가장 가까운 부모 클래스
equals(Object o)
- 재정의를 제공 한 부모 클래스가 없으면 기본적으로 최종 부모 클래스 인 Object의 메서드가 사용되므로
Object#equals(Object o)
메서드가 남습니다. Object API에 따라 이것은==
와 같습니다. 즉, 두 변수가 동일한 객체를 참조하는 경우에만 해당 참조가 하나이고 동일한 경우 true를 반환합니다. 따라서 기능적 동등성이 아닌 객체 동등성을 테스트하게됩니다. - "계약을 위반"하지 않도록
equals
를 재정의하는 경우hashCode
를 재정의해야합니다. API에 따라 두 객체에 대해hashCode()
메서드에서 반환 된 결과는equals
메서드가 동등 함을 표시하는 경우 동일 해야합니다. 그 반대가 반드시 사실 은 아닙니다.
출처 : https://stackoverflow.com/questions/7520432/what-is-the-difference-between-and-equals-in-java
728x90
반응형
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
JavaScript 객체를 출력(디버깅) 하는 방법 (0) | 2022.03.26 |
---|---|
Java에서 다른 생성자를 호출하는 방법 (0) | 2022.02.01 |
Java에서 일반 배열을 만드는 방법 (0) | 2021.12.29 |
Java "."(점)으로 분할 된 문자열을 만드는 방법 (0) | 2021.12.29 |
Java에서 파일의 파일 확장자를 얻는 방법 (0) | 2021.12.29 |