15. 기술면접 - 자바 - == 와 eqauls 의 차이
공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다
"=="
항등 연산자(Operator) 이다.
<--> !=
- 참조 비교(Reference Comparison) ; (주소 비교, Address Comparison)
- 두 객체가 같은 메모리 공간을 가리키는지 확인한다.
- 반환 형태: boolean type
- 같은 주소면 return true, 다른 주소면 return false
- 모든 기본 유형(Primitive Types)에 대해 적용할 수 있다.
- byte, short, char, int, float, double, boolean
"equals()"
객체 비교 메서드(Method) 이다.
<--> !(s1.equals(s2));
- 내용 비교(Content Comparison)
- 두 객체의 값이 같은지 확인한다.
- 즉, 문자열의 데이터/내용을 기반으로 비교한다.
- 기본 유형(Primitive Types)에 대해서는 적용할 수 없다.
- 반환 형태: boolean type
- 같은 내용이면 return true, 다른 내용이면 return false
"==" VS "equals()" 예시
public class Test {
public static void main(String[] args) {
// Thread 객체
Thread t1 = new Thread();
Thread t2 = new Thread(); // 새로운 객체 생성. 즉, s1과 다른 객체.
Thread t3 = t1; // 같은 대상을 가리킨다.
// String 객체
String s1 = new String("WORLD");
String s2 = new String("WORLD");
/* --print-- */
System.out.println(t1 == t3); // true
System.out.println(t1 == t2); // false(서로 다른 객체이므로 별도의 주소를 갖는다.)
System.out.println(t1.equals(t2)); // false
System.out.println(s1.equals(s2)); // true(모두 "WORLD"라는 동일한 내용을 갖는다.)
}
}
'∞. 기술 면접 > 7. 자바' 카테고리의 다른 글
16. 기술면접 - 자바 - 리플렉션, 스트림, 람다 (0) | 2021.10.22 |
---|---|
13. 기술면접 - 자바 - String, StringBuilder, StringBuffer (0) | 2021.10.22 |
12. 기술면접 - 자바 - 클래스, 객체, 인스턴스 (0) | 2021.10.22 |
11. 기술면접 - 자바 - 컬렉션 프레임워크 (Collection Framework) (0) | 2021.10.21 |
10. 기술면접 - 자바 - 인터페이스와 추상 클래스 차이 (0) | 2021.10.21 |
댓글
이 글 공유하기
다른 글
-
16. 기술면접 - 자바 - 리플렉션, 스트림, 람다
16. 기술면접 - 자바 - 리플렉션, 스트림, 람다
2021.10.22 -
13. 기술면접 - 자바 - String, StringBuilder, StringBuffer
13. 기술면접 - 자바 - String, StringBuilder, StringBuffer
2021.10.22 -
12. 기술면접 - 자바 - 클래스, 객체, 인스턴스
12. 기술면접 - 자바 - 클래스, 객체, 인스턴스
2021.10.22 -
11. 기술면접 - 자바 - 컬렉션 프레임워크 (Collection Framework)
11. 기술면접 - 자바 - 컬렉션 프레임워크 (Collection Framework)
2021.10.21