차이:
== 비교되는 것은 변수(스택) 메모리에 저장된 객체의(힙) 메모리 주소이며, 두 객체의 주소가 동일한지 확인하는 데 사용됩니다. 즉, 동일한 객체를 참조하는지 여부입니다. 비교되는 것은 실제 포인터 연산이다.
equals는 두 개체의 내용이 동일한지 비교하는 데 사용됩니다. 모든 클래스는 java.lang.Object 클래스에서 상속되므로 이 메서드를 재정의하지 않으면 계속 호출됩니다. Object 클래스의 메소드이지만 Object의 equals 메소드는 == 판단을 반환합니다.
Java의 데이터 유형은 두 가지 범주로 나눌 수 있습니다:
기본 데이터 유형
byte, short, char, int, long, float, double, boolean
기본 데이터 유형 간 비교 Double Equal 값을 비교하기 때문에 부호(==)가 필요합니다.
참조 데이터 유형
인터페이스, 클래스, 배열 및 기타 기본이 아닌 데이터 유형
Java의 문자열은 문자열이 클래스이기 때문에 참조 데이터 유형입니다.
(==)를 사용하여 비교하면 메모리의 저장 주소를 비교합니다. 따라서 동일한 새 개체가 아닌 경우 비교 결과는 true이고, 그렇지 않으면 비교 결과는 false입니다. 매번 새로운 힙 메모리 공간이 열리기 때문에
Entity entity = new Entity(); Entity entity1 = new Entity(); Entity entity2 = entity; System.out.println(entity==entity2); System.out.println(entity.equals(entity2)); System.out.println(entity.equals(entity1)); System.out.println(entity==entity1);
결과:
true true false false
요약:
합성 데이터 유형 간 같음 비교의 경우, 같음 메서드를 재정의하지 않고 비교는 여전히 의 주소 값입니다. 이중 등호(==)의 결과와 동일한 메모리의 저장 위치입니다. 덮어쓰는 경우 덮어쓰기 요구 사항을 따릅니다.
== 기능:
기본 유형: 비교되는 것은 값이 동일한지 여부입니다.
참조 유형: 비교되는 것은 주소 값이 동일한지입니다.
의 역할:
참조 유형: 기본적으로 주소 값을 비교합니다. 이 메서드를 재정의한 후 개체의 멤버 변수 값이 동일한지 비교합니다.
추천 튜토리얼: Java 입문 튜토리얼
위 내용은 Java에서 같음과 "=="의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!