개발/Java

[JAVA] ==와 equals의 차이점은 무엇입니까?

개발자 빠미 2023. 8. 31. 18:59

주니어 자바 개발자를 위한 100가지 질문
주니어 자바 개발자를 위한 100가지 질문

 

 주니어 자바 개발자를 위한 100가지 질문 중 2번째 포스팅입니다. '=='와 'equals()'의 차이점은 무엇입니까? 에 대한 질문의 답을 살펴보도록 하겠습니다. '=='와 'equals()'는 둘 다 비교 연산에 사용된다는 공통점을 가지고 있습니다. 이 둘이 Java에서는 어떻게 동작하는지 살펴보고 차이점 또한 알아보도록 하겠습니다.

 

'==' (Equal Operator 등호)

1.  '==' 는 여러 프로그래밍 언어에서 제공되는 기본적인 비교 연산자입니다.

2. 비교 연산자이기 때문에 두 값을 비교하여 값이 동일한 경우엔 'ture'를 반환합니다. 그렇지 않을 경우엔 'false'를 반환합니다.

3. 'ture' 와 'false'로 반환하기 때문에 암시적으로 데이터 타입의 형 변환이 발생할 수 있기 때문에 주의해야 합니다.

4. 정수, 소수점 등의 기본 데이터 타입의 비교에 주로 사용됩니다.

 

ex) Java

int a = 1;
int b = 2;
boolean result = (a==b); //false

 

'equals()' 메서드

1. 메서드의 종류입니다. 주로 객체 지향 프로그래밍 언어에서 사용됩니다.

2. 클래스가 'equals()' 메서드를 오버라이딩하여 자기 자신의 내부 상태를 비교하도록 구현해야 합니다.

3. 두 객체를 비교하여 내용이 동일한지 확인하고 내용이 동일하다면 'ture'를 반환합니다. 그렇지 않을 경우엔 'false'를 반환합니다.

4. 사용자 정의 클래스 혹은 문자열 같은 객체 비교에 주로 사용합니다.

 

ex) Java

Stirng str1 = new String("Hello World");
Stirng str2 = new String("Hello World");
boolean result = str1.equals(str2); //true

 

요약

 먼저 단순한 차이점만 본다면 '=='은 비교 연산자이고 'equals()'는 메서드입니다. 비교 연산자인 '=='은 대상의 주솟값을 비교합니다. 'equals()'는 객체를 비교하며 그 값 자체를 비교합니다. 둘 다 값을 비교해 boolean type으로 반환하며 값은 'true'와 'fales'로 반환한다는 공통점이 있습니다. 결국 둘의 차이점은 주소를 비교하는지 아니면 내용을 비교하는지의 차이가 있습니다.

 

 

<질문 출처>

https://medium.com/@xjpp22/top-100-java-interview-questions-for-1-to-3-years-experienced-programmers-63ad74069cb6

 

Top 100 Java Interview Questions for 1 to 3 Years Experienced Programmers

containers, multithreading, reflection, object copy, Java Web, exceptional cases, internet, Spring MVC.

medium.com

 

반응형