본문 바로가기
Web Programming/JAVA

Java / equals()와 == 차이 / equals()를 사용하는 이유

by hyeon-H 2021. 7. 29.
728x90
반응형

equals()와 == 차이점과 equals()를 사용하는 이유

equals()= =는 내용을 비교한 값을 boolean type(true false)로 반환하는 공통점이 있습니다.

하지만 이 두개는 많은 차이점을 가지고 있습니다.


아래의 코드는 a와 b 둘다 문자열 "aa" 를 가지고 있습니다.

public static void main(String[] args) {
  String a = "aa";
  String b = new String("aa");
	
  // ==
  if(a == b) {
  	System.out.println(" == 일치!");
  }else {
  	System.out.println(" == 불일치!");
  }
  
  // .equals()
  if(a.equals(b)) {
 	 System.out.println(" equals 일치!");
  }else {
  	System.out.println(" equals 불일치!");
  }
}

위의 결과는 아래와 같다.

이유는
"==" 연산자는 비교하는 대상들의 주소를 비교 하고, 
(기본타입의 같은 문자를 담게되면 같은 주소가 나오고, 객체를 새로 생성하는 경우 다른 주소가 나온다.)
"equals()" 메소드는 객체의 내용끼리 비교 할 수 있게 해줍니다.

 

간단한 테스트를 해보았다.

위 두 코드의 실행결과를 아래서 확인하면 a와 b의 주소가 같다는 것을 확인 할 수 있다.

728x90
반응형