IT/자바, 스프링

자바에서 데이터 비교할때 .equeal()과 == 차이

thesse 2022. 5. 18. 17:29
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
반응형