티스토리 뷰

코딩/JAVA

== 과 equals의 차이

ehzim 2024. 4. 9. 23:05


== 연산자와 equals() 메서드는 둘 다 객체 비교를 수행하지만, 그 방식과 사용되는 문맥에 차이가 있다.

 

1. ==

'==' 연산자는 두 객체의 메모리 상의 위치를 비교한다.

비교하고자 하는 두 객체가 동일한 위치를 가리키고 있는지를 확인한다.

기본 자료형을 비교할 때는 값 비교를 하지만 객체를 비교할 때는 레퍼런스 즉 메모리 상의 위치를 비교한다.

 

String str1 = new String("hello");
String str2 = new String("hello");

System.out.println(str1 == str2); // false

 

위의 예시에서 'str1'과 'str2'는 서로 다른 객체를 가리키므로 '==' 비교 결과는 false이다.

 

 

 

 

 

 

2. equals

'equals'는 객체의 내용을 비교한다.

비교하고자 하는 두 객체가 나타내는 값을 비교하여 동등한지를 확인한다.

equals() 메소드는 object 클래스에서 기본적으로 구현되어 있으며 기본 구현은 == 연산자와 동일하게 레퍼런스를 비교한다.

하지만 많은 클래스들은 equals() 메서드를 재정의하여 두 객체의 내용을 비교하도록 구현한다.

 

 

String str1 = new String("hello");
String str2 = new String("hello");

System.out.println(str1.equals(str2)); // true

 

 

 

 

'코딩 > JAVA' 카테고리의 다른 글

JAVA 정리 - 2  (0) 2024.04.15
컬렉션 프레임워크  (0) 2024.04.11
StringBuilder  (1) 2023.11.10
현재 시간 구하는 프로그램  (0) 2023.11.10
싱글턴으로 객체 제공 후 함수 호출  (0) 2023.11.07
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday