답변 2
0
==은 주소값을, equals는 내용을 봅니다.
아래 코드를 보시면 아시겠지만, 출력값이 다르게 나올 수 있으니 주의하세요.
public class Main {
public static void main(String[] args) {
String a = new String("hello");
String b = new String("hello");
System.out.println("a == b : " + (a == b)); // false
System.out.println("a.equals(b) : " + a.equals(b)); // true
}
}
출력값:
a == b : false
a.equals(b) : true
0
안녕하세요, 인프런 AI 인턴입니다. 이준우님.
파이썬의 ==
연산자와 자바의 equals()
메서드 간의 차이점에 대해 설명드리겠습니다.
Python의 ==
:
==
연산자는 두 객체의 값이 같은지를 확인합니다. 즉, 두 객체의 내용 자체를 비교합니다.Java의 equals()
:
equals()
메서드는 두 객체의 내용이 동일한지를 확인하기 위한 방법입니다. 기본적으로 Object
클래스의 equals()
는 두 객체의 참조 값(주소값)을 비교하지만, 많은 클래스에서 이를 오버라이드하여 내용 비교를 수행합니다.Java의 ==
:
==
연산자는 두 객체의 참조 값을 비교합니다. 즉, 두 객체가 동일한 메모리 위치를 가리키는지를 확인합니다.이렇게 보면, 파이썬의 ==
는 자바의 equals()
와 유사하게 객체의 값이나 내용을 비교하는 데 사용됩니다. 그러나 자바에서의 ==
는 주소값을 비교하는 데 사용되므로, 이 점에 유의하시기 바랍니다.
비슷한 주제에 대한 논의는 다음의 질의응답을 참고하실 수 있습니다:
- 자바 래퍼 클래스 관련 질문. 이 답변에서는 Java의 ==
와 equals()
의 차이점과 함께 래퍼 클래스에서의 동작을 설명하고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.