300x250
반응형
기본적인 차이
==는 기본 자료형에서 쓸 수 있는 비교연산자이고 .equals()는 클래스 자료형에서 사용되는 함수이다.
즉 int, char 등에서는 .equals()를 사용할 수 없다.
String, Integer와 같은 클래스 자료형은 .equals() 함수를 호출해서 사용할 수 있다.
비교방식의 차이
==는 대상 객체 자체를 비교한다. 즉 보기에 같은 값을 가지고 있어도 주소값을 비교해서 다르면 false로 나옴
.equals는 객체가 가지고 있는 데이터의 내용을 비교한다. 그래서 String을 비교할 때는 == 이 아닌 .equals()를 쓰는 것이다. String은 클래스 자료형이고, 동일한 변수끼리 비교하는게 아니라면 같은 문자열이어도 다른 주소값을 가지므로 항상 false가 나오기 때문이다.
null 비교
null 값을 가진 데이터를 비교할때는 .equals()를 사용할 수 없다.
말그대로 null이기 때문에 null에 속한 함수를 사용할 수 없기 때문 (null point exception 발생)
따라서 nullable한 데이터를 비교할 때는 A != null 인지 확인 후 A.equals()를 해야 한다.
300x250
반응형
'IT > 자바, 스프링' 카테고리의 다른 글
413 Request Entity Too Large - 큰 용량의 파일을 전송하기 (0) | 2022.09.05 |
---|---|
Cannot load driver class: org.mariadb.jdbc.Driver 에러 (0) | 2022.05.31 |
jpa query method로 날짜 비교하기 (0) | 2022.05.18 |
jpa pageRequest로 데이터 가져왔을때 Index out of bounds for length 에러 (0) | 2022.05.09 |
java.lang.ClassCastException (0) | 2022.03.24 |