[java] 객체 비교 연산자
Java에서 객체를 비교하는 데 사용되는 연산자는 ==
와 .equals()
메서드입니다. 객체를 비교하는 방법에 대한 이해는 Java 프로그래밍에서 매우 중요합니다.
==
연산자
==
연산자는 두 개의 객체가 메모리 상의 동일한 위치를 참조하는지를 확인합니다. 즉, 두 객체의 주소를 비교하는 것입니다.
String str1 = "Hello";
String str2 = "Hello";
String str3 = new String("Hello");
System.out.println(str1 == str2); // 출력: true
System.out.println(str1 == str3); // 출력: false
equals()
메서드
equals()
메서드는 객체의 실제 값을 비교합니다. 이 메서드는 부모 클래스인 Object
클래스에서 선언되었으며, 대부분의 클래스에서는 이 메서드를 재정의하여 사용합니다.
String str1 = "Hello";
String str2 = "Hello";
String str3 = new String("Hello");
System.out.println(str1.equals(str2)); // 출력: true
System.out.println(str1.equals(str3)); // 출력: true
equals()
메서드는 일반적으로 클래스의 필드 값을 비교하는 방식에 따라 재정의되며, 두 객체의 내부 값을 비교하기 위해 사용됩니다.
객체 비교 사용 시 주의 사항
- 기본 타입의 경우
==
연산자를 사용하여 비교할 수 있지만, 객체의 경우equals()
메서드를 사용하는 것이 안전합니다. equals()
메서드를 재정의할 때는null
체크와 대칭성, 이행성, 대비대칭성 조건을 충족시켜야 합니다.
객체 비교 연산자의 사용에 대해 더 알아보려면 Java의 공식 문서를 확인하는 것이 좋습니다.
이와 같이, Java에서 객체 비교 연산자 ==
와 equals()
메서드의 차이를 이해하고 올바르게 사용하면 코드의 정확성과 가독성을 높일 수 있습니다.