관리 메뉴

드럼치는 프로그래머

[JAVA] == 과 equals()의 차이 본문

★─Programing/☆─JAVA

[JAVA] == 과 equals()의 차이

드럼치는한동이 2007. 10. 17. 00:22
  == 는 주로 primitive data type간의 비교를 위해 사용합니다.
 예를 들어
int x = 1;
int y = 1;
일 경우 x == y 는 참이 됩니다.

 하지만 두 객체를 비교 했을 경우 == 는 가리키고 있는 객체의 레퍼런스 값이 같아야 참의 값이 나옵니다.

 반면 equals() 메서드는 값의 비교가 아닌 내용상의 비교이기 때문에
 해당 객체의 내용이 같다면 레퍼런스하고 있는 위치(주소값)이 달라도 원래 의도하신대로 같은 값을 얻을수 있습니다.

///////////////////////////////////////////////////////////////////////////////////////////////////////////////

String s1 = "하하하";
String s2 = "하하하";
String s3 = new String("하하하");
String s4 = new String("하하하");

equals는 객체가 가지고 있는 내용을 비교하기 위한 메소드이며
==는 객체가 같은지 다른지 비교하는 비교연산자

if(s1 == s2)           // true
if(s1 == s3)           // false
if(s1.equals(s2))   // true
if(s3 == s4)           // false
if(s3.equals(s4))   // true
Comments