equals
는 메소드이며, 객체끼리 내용을 비교할때 사용한다. ==
는 비교를 위한 연산자이다.equals
메소드는 대상의 내용자체를 비교하지만==
는 비교하고자하는 대상의 주소값을 비교한다.String a = "aa"; String b = a; String c = new String("aa"); System.out.println(a.equals(b)); // true System.out.println(a==b);//true System.out.println(a==c);//false System.out.println(a.equals(c));//true
위 코드에서 보면 a==c 에서만 false 가 나오는것을 알수있다.
이러한 이유는 a와 c의 내용자체는 같지만 heap영역에 저장되어있는 주소값이 다르기때문이다.그외
a.equals(b) -> a와 b의 내용이 같으므로 true
a==b -> a와 b의 주소값이 같으므로 true
a.equals(c) -> a와 c의 내용이 같으므로 true 가 출력되는것이다.