[Java] equals() / hashcode()
- 📕 Programing/Java
- 2023. 4. 30.
반응형
equals()메서드
- 두 인스턴스의 주소 값을 비교하여 true/false 반환
- 인스턴스가 다르다라도 논리적으로 동일한 경우 true 반환하도록 재정의 할 수 있음
hashCode()메서드
- hasCode()는 인스턴스의 저장 주소를 반환함
- 힙메모리에 인스턴스가 저장되는 방식이 hash 방식
- hash: 정보를 저장, 검색하는 자료구조
- 자료의 특정 값(키 값)에 대한 저장 위치를 반환해주는 해시 함수를 사용
Student Lee = new Student(100, "kkk");
Student Lee2 = Lee;
Student Shun = new Student(100, "kkk");
System.out.println("Lee.hashCode() - " + Lee.hashCode()); // 1784662007
System.out.println("Shun.hashCode() - " + Shun.hashCode()); // 1789550256
System.out.println("Shun = " + Shun); // ch02.Student@6aaa5eb0
System.out.println("Lee = " + Lee); // ch02.Student@6a5fc7f7
System.out.println("Lee.equals(Shun) = " + Lee.equals(Shun)); // false
System.out.println("Lee.equals(Lee2) - " + Lee.equals(Lee2)); // true
System.out.println("Lee == Lee2 - " + (Lee == Lee2)); // true
String str1 = new String("test");
String str2 = new String("test");
System.out.println("str2 = " + str2); // test
System.out.println("str1 = " + str1); // test
System.out.println(str1.equals(str2)); // true
System.out.println(str1 == str2); // false
System.out.println(str1.hashCode()); // 3556498
System.out.println(str2.hashCode()); // 3556498반응형
'📕 Programing > Java' 카테고리의 다른 글
| [Java] 함수형 프로그래밍과 람다식 (0) | 2023.05.02 |
|---|---|
| 컴파일(Compile) / 런타임(Runtime) / 컴파일의 흐름 (0) | 2023.05.01 |
| [Java] SFTP 사용하여 파일 업로드 (0) | 2023.02.14 |
| [Java] 객체의 특정 값으로 오름|내림 차순 정렬 (Comparable 사용) (0) | 2022.04.27 |
| [Java] HTTP 방식으로 POST 통신 (1) | 2021.11.02 |