> Java > Java베이스 > Java에서 같음과 '=='의 차이점

Java에서 같음과 '=='의 차이점

王林
풀어 주다: 2019-11-19 17:03:35
원래의
2098명이 탐색했습니다.

Java에서 같음과 '=='의 차이점

차이:

== 비교되는 것은 변수(스택) 메모리에 저장된 객체의(힙) 메모리 주소이며, 두 객체의 주소가 동일한지 확인하는 데 사용됩니다. 즉, 동일한 객체를 참조하는지 여부입니다. 비교되는 것은 실제 포인터 연산이다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿