반응형
1일 1개념정리 24.08.09.금 ~
큰 결정에 큰 동기가 따르지 않을 때도 있다. 하지만 큰 결심이 따라야 이뤄낼 수 있다.
무조건 무조건 1일 1개의 개념 정리하기 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#20. '=='와 'equals()'의 차이
Java에는 equals 메소드로도 객체를 비교할 수 있는데, 등호 2개와 무슨 차이일까 ?? 두개의 차이에 대해 가볍게 알아보자.
한줄요약 : ==은 객체 메모리 주소를 비교, equals는 객체 내부 값을 비교함.
== 연산자
두 객체의 참조값을 비교한다. 즉, 객체의 메모리 주소를 비교하므로 동일한 메모리 위치를 참조하는지 확인할 때 사용한다.
Person a = new Person(25);
Person b = new Person(25);
if (a == b)
System.out.println("a와 b는 같은 객체를 참조");
else
System.out.println("a와 b는 다른 객체를 참조"); // 다른 객체이므로 요기 출력
출력 결과는 어떻게 될까 ? 당연히 a, b는 서로 다른 객체이므로 다른 객체라고 나오게 된다.
equals() 메소드
두 객체의 "내용"을 비교한다. 즉, 두 객체 내부의 값이 서로 같은지 확인한다. equals()는 Object 클래스에 정의되어 있어서 필요에 따라 하위 클래스에서 오버라이드될 수 있다.
Person a = new Person(25);
Person b = new Person(25);
if (a.equals(b))
System.out.println("a와 b의 값이 같다."); // 값이 같으니까 여기 출력
else
System.out.println("a와 b의 값이 다르다.");
출력 결과는 서로 같은 값을 가지고 있으므로 True가 되어 같다고 출력한다.
정리
- == : 두 객체가 동일한 메모리 주소를 가리키는지 확인
- equals() : 두 객체의 값이 동일한지 확인
반응형
'1일 1개념정리 (24년 8월~) > Java' 카테고리의 다른 글
1일1개 (25) - 생성자 (0) | 2024.09.04 |
---|---|
1일1개 (21) - 불변객체란 ? (0) | 2024.08.30 |
1일1개 (19) - static (0) | 2024.08.28 |
1일1개 (18) - 상속과 구현 (0) | 2024.08.27 |
1일1개 (17) - 오버라이딩 vs 오버로딩 (0) | 2024.08.26 |