
주니어 자바 개발자를 위한 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
'개발 > Java' 카테고리의 다른 글
[JAVA] 두 객체가 동일한 hashCode를 가지면 Equals()가 참일까요? / 자바에서 final의 기능은 무엇입니까? (0) | 2023.09.05 |
---|---|
[JAVA] JDK와 JRE의 차이점 (0) | 2023.08.30 |
[Java] 자바 프로그램 에러날 때 (0) | 2022.11.10 |