Java의 객체 참조 비교와 값 동일성
Java에서는 == 연산자를 사용하여 문자열을 비교할 때 객체 동일성을 결정하는 것이 혼란스러울 수 있습니다. . 이 모호해 보이는 동작을 자세히 살펴보겠습니다.
다음 시나리오를 고려해 보세요.
// Define a String array String[] parts = {"231", "CA-California", "Sacramento-155328", "aleee", "Customer Service Clerk", "Alegra Keith.doc.txt"}; // Perform comparison if ("231" == parts[0]) { // This comparison will evaluate to false }
놀랍게도 비교 결과가 false입니다. 이는 Java의 == 연산자가 값 동일성이 아닌 객체 참조 동일성을 확인하기 때문입니다. 다른 많은 언어와 달리 Java 문자열은 객체입니다. ==를 사용하여 두 문자열을 비교할 때 실제 문자열 값이 아닌 해당 개체가 있는 메모리 주소를 비교합니다.
문자열의 실제 값을 비교하려면 String.equals 메서드를 사용해야 합니다.
if ("231".equals(parts[0])) { // This comparison will evaluate to true }
이 방법은 객체 참조가 아닌 문자열의 내용을 확인합니다.
Java의 모든 객체에 대해 == 연산자를 기억하세요. 참조 동등성을 확인하는 반면, equals 메소드는 실제 객체 값을 비교합니다. ==는 객체 참조를 비교할 때 잘못된 결론을 초래할 수 있으므로 객체의 동등성을 확인할 때 같음을 사용하는 것이 중요합니다.
위 내용은 Java 문자열 비교: `==` 대 `.equals()` – 언제 어느 것을 사용해야 할까요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!