2014-12-07 4 views
0

그래서 ==는 참조 번호 (메모리에있는 객체의 주소)에서 동등성을 검사한다는 것을 이해합니다. 그리고 .equals()는 객체의 내용을 검사합니다.== 대. equals를 사용하여 자바의 문자열을 비교

String s = "test"; 
String s2 = "test"; 

나는 두 개의 서로 다른 문자열 개체를 만드는거야 아직, 나는 다음과 같은 얻을 :

s == s2; //true, I dont know why, aren't s and s2 two different objects with 
      different internal values 
s.equals(s2); //true, which I understand 
+3

이것은 [this thread] (http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java)에 자세히 설명되어 있습니다. – eis

답변

5

는 S와 S2 두 개의 서로 다른 개체

번호 s 없습니다 s2String 풀에 인턴 된 동일한 객체를 나타냅니다.

+0

그래서'String something = "something"이라고 말할 때마다 참조 변수'something'이 같은 객체를 참조하고 있습니까? – PTheCoolGuy

+0

예. ''무언가''가 이미 억류 된 상태 여야합니다. 'new String ("test")'를 사용하여 명시 적으로 다른 객체를 생성하여 첫 번째 테스트에 대해 false를 반환 할 수 있습니다. – Reimeus

+0

예. 감사 – PTheCoolGuy

관련 문제