티스토리 뷰
== 연산자와 equals() 메서드는 둘 다 객체 비교를 수행하지만, 그 방식과 사용되는 문맥에 차이가 있다.
1. ==
'==' 연산자는 두 객체의 메모리 상의 위치를 비교한다.
비교하고자 하는 두 객체가 동일한 위치를 가리키고 있는지를 확인한다.
기본 자료형을 비교할 때는 값 비교를 하지만 객체를 비교할 때는 레퍼런스 즉 메모리 상의 위치를 비교한다.
String str1 = new String("hello");
String str2 = new String("hello");
System.out.println(str1 == str2); // false
위의 예시에서 'str1'과 'str2'는 서로 다른 객체를 가리키므로 '==' 비교 결과는 false이다.
2. equals
'equals'는 객체의 내용을 비교한다.
비교하고자 하는 두 객체가 나타내는 값을 비교하여 동등한지를 확인한다.
equals() 메소드는 object 클래스에서 기본적으로 구현되어 있으며 기본 구현은 == 연산자와 동일하게 레퍼런스를 비교한다.
하지만 많은 클래스들은 equals() 메서드를 재정의하여 두 객체의 내용을 비교하도록 구현한다.
String str1 = new String("hello");
String str2 = new String("hello");
System.out.println(str1.equals(str2)); // true
'코딩 > JAVA' 카테고리의 다른 글
JAVA 정리 - 2 (0) | 2024.04.15 |
---|---|
컬렉션 프레임워크 (0) | 2024.04.11 |
StringBuilder (1) | 2023.11.10 |
현재 시간 구하는 프로그램 (0) | 2023.11.10 |
싱글턴으로 객체 제공 후 함수 호출 (0) | 2023.11.07 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday