2014-09-19 3 views
-1

String 클래스가 java의 메모리 관리에서 어떻게 작동하는지 설명 할 수 있습니까? 최근에 문자열 비교에 대해 들었습니다. == 연산자와 equals 메서드를 가진 두 개의 문자열은 어떻게 다릅니 까?"new String (..)"을 사용할 때 "=="이 다르게 작동하는 이유는 무엇입니까?

예 : 케이스 1과 case3에 String str1 = "Hello"; String str2 = "Hello"; String str3 = new String("Hello");

어떤 제안?

+1

** 모든 제안 사항 **? . 예, 항상 .equals()를 사용하십시오. – TheLostMind

+2

(그러나 관련된 가까운 투표 수를 따라 잡으십시오!) – user2864740

+0

@ user2864740 예, 관련 답변을 주셔서 감사합니다. –

답변

3

==은 자바의 2 개 문자열 객체의 참조를 비교하며 내용은 비교하지 않습니다. equals 메서드는 콘텐츠를 검사하는 메서드입니다.

하지만 인텐시브 문자열로 인하여 메모리에 저장된 문자열 리터럴의 인스턴스가 하나 있기 때문에 str1 == str2 withh가 참인 경우에 해당합니다.

관련 문제