>  기사  >  Java  >  Java에서 ==와 같음의 비교 연산 분석

Java에서 ==와 같음의 비교 연산 분석

王林
王林앞으로
2020-11-17 15:11:332354검색

Java에서 ==와 같음의 비교 연산 분석

비교 분석:

(학습 영상 공유: java 강좌)

==: 두 개체의 주소가 동일한지 확인하는 기능입니다. 즉, 두 개체가 동일한 개체인지 여부를 확인합니다. (기본 데이터 유형은 값을 비교하고 참조 데이터 유형은 == 메모리 주소를 비교합니다).

equals(): 이 함수의 기능은 두 객체가 동일한지 여부를 확인하는 것입니다. 그러나 일반적으로 다음과 같은 두 가지 사용 사례가 있습니다.

사례 1: 클래스는 equals() 메서드를 다루지 않습니다. 그러면 equals()를 통해 이 클래스의 두 객체를 비교하는 것은 ==를 통해 두 객체를 비교하는 것과 동일합니다.

사례 2: 클래스가 equals() 메서드를 재정의합니다. 일반적으로 두 객체의 내용이 동일한지 확인하기 위해 equals() 메서드를 재정의합니다. 내용이 동일하면 true가 반환됩니다(즉, 두 객체가 동일한 것으로 간주됩니다).

코드 예:

public class test1 {
	public static void main(String[] args) {
		String a = new String("ab"); // a 为一个引用
		String b = new String("ab"); // b 为另一个引用,对象的内容一样
		String aa = "ab"; // 放在常量池中
		String bb = "ab"; // 从常量池中查找
		if (aa == bb) // true
		System.out.println("aa==bb");
		if (a == b) // false,非同一对象
		System.out.println("a==b");
		if (a.equals(b)) // true
		System.out.println("aEQb");
		if (42 == 42.0) // true
		System.out.println("true");
	}
}

객체의 equals 메소드는 객체의 메모리 주소를 비교하는 반면 String의 equals 메소드는 객체의 값을 비교하기 때문에 String의 equals 메소드가 재정의되었습니다. String 유형의 객체를 생성할 때 가상 머신은 상수 풀을 검색하여 생성하려는 객체와 동일한 값을 가진 기존 객체가 있는지 확인하고, 존재하는 경우 현재 참조에 할당합니다. 그렇지 않은 경우 상수 풀에서 String 개체를 다시 만듭니다.

관련 권장 사항: Java 시작하기

위 내용은 Java에서 ==와 같음의 비교 연산 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제