> Java > Java시작하기 > 같음과 ==의 차이점을 자세히 설명하세요.

같음과 ==의 차이점을 자세히 설명하세요.

王林
풀어 주다: 2020-09-28 16:17:46
앞으로
2244명이 탐색했습니다.

같음과 ==의 차이점을 자세히 설명하세요.

먼저 JVM의 메모리 할당 지식을 소개하겠습니다.

(추천 튜토리얼: java 강좌)

JVM에서는 메모리가 힙 메모리와 스택 메모리로 구분됩니다. 이들 사이의 차이점은 객체(새 객체)를 생성할 때 객체의 생성자가 호출되어 공간을 열고 객체 데이터를 힙 메모리에 저장하며 동시에 스택 메모리에 해당 참조를 생성한다는 것입니다. 후속 코드에서 이를 호출할 때 스택 메모리의 참조를 사용합니다. 또 한 가지 주목할 점은 기본 데이터 유형이 스택 메모리에 저장된다는 것입니다.

equal과 ==의 차이점에 대한 초기 이해:

==는 두 변수나 인스턴스가 동일한 메모리 공간을 가리키는지 여부를 확인하는 것이고, 같음은 가 가리키는 메모리 공간의 값이 가리키는지 여부를 확인하는 것입니다. 두 개의 변수 또는 인스턴스가 동일합니다. ==는 메모리 주소를 비교하는 것을 나타내고, equals()는 문자열의 내용을 비교합니다. ==는 참조가 동일한지 여부를 나타내며, equals()는 값이 동일한지 여부를 나타냅니다.

그림을 사용하여 둘 사이의 관계를 간략하게 보여줍니다.

같음과 ==의 차이점을 자세히 설명하세요.

테스트:

같음과 ==의 차이점을 자세히 설명하세요.

같음과 ==의 차이점에 대한 자세한 설명:

== 비교는 변수(스택)에 있습니다. memory 저장된 객체의 (힙) 메모리 주소는 두 객체의 주소가 동일한지, 즉 동일한 객체를 참조하는지 여부를 확인하는 데 사용됩니다. 비교되는 것은 실제 포인터 연산이다. equals는 두 객체의 내용이 동일한지 비교하는 데 사용됩니다. 모든 클래스는 java.lang.Object 클래스에서 상속되므로 이 메서드를 재정의하지 않으면 호출은 여전히 ​​Object 메서드입니다. 하지만 Object의 equals 메소드는 == 판단을 반환합니다.

String s="abcd"는 매우 특별한 형식으로, 본질적으로 new와 다릅니다. 이는 Java에서 new 없이 객체를 생성할 수 있는 유일한 방법입니다. String s="abcd" 형식의 할당은 Java에서 직접 변수라고 합니다. new와 같이 압축된 힙이 아닌 상수 풀에 있습니다.

이 형식의 문자열은 JVM 내부에 보관됩니다. 즉, 이러한 문자열을 선언한 후 JVM은 먼저 상수 풀에서 검색하여 "abcd" 값을 가진 개체가 있는지 확인합니다. 즉, 원래 참조와 현재 참조 지점이 동일한 객체에 할당됩니다. 그렇지 않은 경우 다음 번에 String s1 = "abcd"가 있으면 새 "abcd"가 생성됩니다. "; 다시 s1이 "abcd" 개체, 즉 이 형식으로 선언된 문자열을 가리킵니다. 값이 동일한 한 여러 참조는 동일한 개체를 가리킵니다.

그리고 String s = new String("abcd");는 다른 객체와 동일합니다. 호출되는 한 객체는 호출될 때마다 생성됩니다. 다음과 같이 이해할 수도 있습니다. String str = "hello"; 먼저 메모리에 "hello" 개체가 있는지 확인합니다. 그렇다면 str이 해당 "hello"를 가리킵니다.

메모리에 "hello"가 없으면 "hello"를 저장하기 위해 새 객체를 생성합니다. String str=new 문자열("hello")은 "hello" 객체가 메모리에 이미 존재하는지 여부에 관계없이 생성한다는 의미입니다. "hello"를 저장할 새 개체입니다.

테스트:

같음과 ==의 차이점을 자세히 설명하세요.

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

위 내용은 같음과 ==의 차이점을 자세히 설명하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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