728x90
반응형

equals와 == 차이점

==

연산자로 객체 참조가 같은지 비교

대상의 주소값을 비교

 

equals()

메소드로 객체의 값을 비교

대상의 내용 자체를 비교

 


예제

String test1 = "test";
String test2 = test1;	// test1과 주소값 같음
String test3 = new String("test");

System.out.println(test1==test2);		// true
System.out.println(test1==test3);		// false
System.out.println(test1.equals(test2));	// true
System.out.println(test1.equals(test3));	// true

 


참고

Call By Value는 기본적으로 대상에 주소값을 가지지 않는 것으로 값을 할당받는 형태로 사용됨

예를 들어 int, float, double, byte  primitive type에 해당

 

Call By Reference는 대상을 선언했을 때, 주소값이 부여됨

그래서 어떠한 객체를 불러왔을 때는 그 주소값을 불러온다고 봄

예를 들어 Class, Object(객체)가 이에 해당

 

반응형
복사했습니다!