> Java > java지도 시간 > Java에서 문자열을 비교할 때 \'==\'가 실패하는 이유는 무엇입니까?

Java에서 문자열을 비교할 때 \'==\'가 실패하는 이유는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-30 04:40:14
원래의
111명이 탐색했습니다.

Why Does

Java에서 ==를 사용한 문자열 비교 함정

Java에서는 문자열을 처리할 때 등호 연산자(==)를 사용하여 비교합니다. 예상치 못한 결과를 초래할 수 있습니다. 두 문자열이 동일하게 나타나더라도 비교 결과가 거짓일 수 있습니다. 오류를 방지하려면 이 동작의 원인을 이해하는 것이 중요합니다.

문제의 핵심은 Java의 객체 지향 아키텍처에 있습니다. Java의 문자열은 메모리에 객체로 저장되며 항등 연산자(==)는 해당 객체의 내용이 아닌 해당 객체에 대한 참조를 비교합니다. 따라서 실제 문자열 값이 동일하더라도 참조 주소가 달라 잘못된 비교가 발생할 수 있습니다.

문자열 값을 정확하게 비교하려면 String에서 제공하는 equals() 메소드를 활용해야 합니다. 수업. 이 방법은 문자열 내용을 직접 비교하여 진정한 동등성을 감지합니다. 값 기반 비교가 필요한 사용자 정의 클래스에서는 equals() 메서드를 재정의해야 한다는 점에 유의하는 것이 중요합니다.

예:

다음 코드 조각을 고려하세요.

String[] parts = {"231", "CA-California", "Sacramento-155328", "aleee", "Customer Service Clerk", "Alegra Keith.doc.txt"};

if ("231" == parts[0]) {
  // Comparison using ==
  System.out.println("False! Why?");
}

if ("231".equals(parts[0])) {
  // Comparison using equals()
  System.out.println("True");
}
로그인 후 복사

==를 사용한 첫 번째 비교는 객체 참조를 비교할 때 false를 반환하는 반면, equals()를 사용한 두 번째 비교는 true를 올바르게 반환합니다. 문자열 값을 평가합니다. 잘못된 결과를 방지하고 정확한 논리적 결과를 보장하려면 값 기반 비교에 equals()를 사용하는 것이 중요합니다.

위 내용은 Java에서 문자열을 비교할 때 \'==\'가 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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