84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
읽는 동안 조심하지 않았기 때문에 알아냈습니다. String는 hashCode 메서드를 다시 썼고, 해당 hashCode 값은 주소가 아닌 내용에 따라 결정됩니다.
String
hashCode
Java에서 String을 결정하기 위해 ==를 사용하는 것은 hashCode 대신 두 객체의 주소를 결정하는 것입니다. 두 개의 String 개체가 있고 두 개체 모두에 대해 new를 사용하므로 ==를 사용하는 것은 false입니다.
hashCode와 ==는 다릅니다. ==는 메모리 주소를 비교하고 인스턴스 변수를 기반으로 hashCode를 계산합니다.
문자열 풀에서 "hello"를 직접 참조하는 대신 new를 사용하여 두 개의 String 인스턴스를 생성했습니다(new 키워드는 새 메모리 공간을 엽니다).
String의 해시 계산 방식은 위 코드의 값과 해시를 기반으로 합니다.
== 비교되는 것은 메모리 주소입니다. 해시와 등호는 문자열의 각 문자에서 거의 얻어집니다. 각 문자는 동일하고 해시는 동일하지만 메모리 주소가 다릅니다
== 두 참조 변수가 동일한 객체를 가리키는지 여부를 결정합니다. 두 개체의 내용이 동일한 경우 해시 코드는 동일하지만 참조는 동일하지 않습니다
읽는 동안 조심하지 않았기 때문에 알아냈습니다.
String
는hashCode
메서드를 다시 썼고, 해당hashCode
값은 주소가 아닌 내용에 따라 결정됩니다.Java에서 String을 결정하기 위해 ==를 사용하는 것은 hashCode 대신 두 객체의 주소를 결정하는 것입니다. 두 개의 String 개체가 있고 두 개체 모두에 대해 new를 사용하므로 ==를 사용하는 것은 false입니다.
hashCode와 ==는 다릅니다. ==는 메모리 주소를 비교하고 인스턴스 변수를 기반으로 hashCode를 계산합니다.
문자열 풀에서 "hello"를 직접 참조하는 대신 new를 사용하여 두 개의 String 인스턴스를 생성했습니다(new 키워드는 새 메모리 공간을 엽니다).
으아아아String의 해시 계산 방식은 위 코드의 값과 해시를 기반으로 합니다.
== 비교되는 것은 메모리 주소입니다. 해시와 등호는 문자열의 각 문자에서 거의 얻어집니다. 각 문자는 동일하고 해시는 동일하지만 메모리 주소가 다릅니다
== 두 참조 변수가 동일한 객체를 가리키는지 여부를 결정합니다. 두 개체의 내용이 동일한 경우 해시 코드는 동일하지만 참조는 동일하지 않습니다