>  기사  >  Java  >  ==는 Java에서 무엇을 의미합니까?

==는 Java에서 무엇을 의미합니까?

(*-*)浩
(*-*)浩원래의
2019-05-21 16:56:2111835검색

관계 연산자 "=="는 정확히 무엇을 비교하나요?

다음 문장은 "Java 프로그래밍 사고"라는 책에서 발췌한 것입니다. "관계 연산자는 부울 결과를 생성하고 피연산자의 값을 계산합니다. 관계".

이 문장은 간단해 보이지만 주의 깊게 이해해야 합니다. 간단히 말하면 ==는 값이 같은지 비교하는 데 사용됩니다.

몇 가지 예를 살펴보겠습니다.

public class Main {
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub 
        int n=3;
        int m=3;        
        System.out.println(n==m);        
        String str = new String("hello");
        String str1 = new String("hello");
        String str2 = new String("hello");        
        System.out.println(str1==str2);        
        str1 = str;
        str2 = str;
        System.out.println(str1==str2);
    }
}

출력 결과는 다음과 같습니다.

true 
false
true
# 🎜🎜#n==m 결과는 true입니다. 이는 이해하기 쉽습니다. 변수 n과 변수 m에 저장된 값은 모두 3이므로 동일해야 합니다. 그리고 str1과 str2의 두 비교 결과가 다른 이유는 무엇입니까? 이를 이해하려면 기본 데이터 유형 변수와 기본이 아닌 데이터 유형 변수의 차이점을 이해하면 됩니다.


이 8가지 기본 데이터 유형의 변수는 변수가 직접 "값"을 저장하므로 관계 연산자 ==를 사용하여 비교하면 비교는 "값" 자체가 됩니다. . 부동 소수점 및 정수 유형은 모두 부호 있는 유형인 반면 char은 부호 없는 유형입니다(char 유형의 값 범위는 0~2^16-1입니다).

#🎜🎜 # 즉, 예를 들면 다음과 같습니다.

int n=3;
int m=3; 
변수 n과 변수 m 모두 값 "3"을 직접 저장하므로 ==와 비교하면 결과가 true입니다.

기본이 아닌 데이터 유형의 변수를 일부 책에서는 참조 유형 변수라고 합니다. 예를 들어, 위의 str1은 참조 유형 변수입니다. 참조 유형 변수는 "값" 자체가 아니라 메모리에 연관된 개체의 주소를 저장합니다.

예를 들어 다음 코드 줄은 다음과 같습니다.

String str1;
이 문장은 참조 유형 변수를 선언합니다. 이번엔 협회다.

new String("hello")을 사용하여 객체(String 클래스의 인스턴스라고도 함)를 생성하고 이 객체를 str1에 바인딩합니다.

str1= new String("hello");
그러면 str1은 객체를 가리킵니다(str1은 여러 곳에서 객체에 대한 참조라고도 합니다). 이때 변수 str1은 "값"이 아닌 자신이 가리키는 객체의 저장 주소를 메모리에 저장합니다. 즉, 직접 저장된 문자열 "hello"가 아닙니다. 여기의 참조는 C/C++의 포인터와 매우 유사합니다.

따라서 ==를 사용하여 처음으로 str1과 str2를 비교하면 결과는 false입니다. 따라서 각각 다른 객체를 가리키며, 이는 실제로 저장되는 메모리 주소가 다르다는 것을 의미합니다.

두 번째 비교에서 str1과 str2는 모두 str이 가리키는 객체를 가리키므로 결과는 의심할 여지 없이 참입니다.

위 내용은 ==는 Java에서 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.