Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 딥러닝
- 생활코딩 머신러닝야학
- 데이터베이서
- MySQL
- reshape
- 야학
- 개발자
- Java
- LeNet
- 머신러닝야학
- CNN
- 판다스
- 생활코딩
- tensorflow
- 이것이 자바다
- 카카오클라우드스쿨2기
- 파이썬
- 연산자
- Database
- JavaScript
- 생활코딩 데이터베이스
- 머신러닝
- 데이터베이스 개론
- flatten
- 머신러닝(딥러닝)
- 데이터베이스
- Python
- pandas
Archives
- Today
- Total
IT's 우
[Java] == 와 equals 차이 본문
728x90
backtony 씨의 답안
📌
==
- 참조 비교로 두 객체가 같은 메모리 공간을 가리키는지 확인
equals
- 두 객체의 내부 값이 같은지 내용을 비교한다.
- 기본 타입(Primitive Type)에 대해서는 적용할 수 없다.
- 객체 비교 시 override 해서 원하는 방식으로 수정할 수 있다.
자바의 최상위 클래스는 Object 클래스이다. Object 클래스에는 기본적으로 equals(), hashCode(), toString(), clone(), notify()등 여러 메서드가 존재
== 연산자
- primitive type 에 대해서는 값을 비교. reference type에 대해서는 주소값을 비교
- 사실 primitive type도 Constant Pool에 있는 특정 상수를 참조하는 것이기 때문에 결국 주소값을 비교하는 것으로 볼 수 있다. 같은 상수를 참조하면 주소값이 같으니 결국 같은 값이면 동일하다고 판단할 수 있다.
equals()
→ 동일한 리터럴 값을 가지냐를 판단
Object 클래스의 메서드이고 이는 == 연산자와 동일하게 주소값을 비교를 수행하는 메서드입니다. 흔히 우리가 문자열 비교를 위해 사용하는 equals()의 경우 String 클래스에서 오버라이딩을 함으로써 문자열 간의 비교가 가능해졌습니다.
String.equals() 사용 시 주의할 점(NullPointException)
메서드의 파라미터로 String 타입을 받더라도 null 을 검증하는 부분이 없기 때문에. equals() 메서드를 사용하면 **NullPointerException**이 터질 수 있습니다. ( equals()의 인자는 null이라도 NullPointerException 이 발생하지 않습니다.) 이럴 경우엔 위에서 언급한 Object.equals() 를 사용하여 두 객체를 비교할 수 있습니다. 그 이유는 Object.equals() 내부에서 자체적으로 param 값이 null 인지 체크하기 때문입니다.
출처
https://github.com/backtony/Backend_Interview_for_Beginner/blob/master/Java.md
728x90
반응형
'CS > Java' 카테고리의 다른 글
[java] 추상 클래스와 인터페이스 차이 (0) | 2023.07.14 |
---|---|
[java] final vs finally vs finalize (0) | 2023.06.30 |
[Java] String vs Char 차이 (1) | 2023.06.15 |
[Java] Object 클래스 (0) | 2023.06.01 |
[Java]문자열 클래스 (0) | 2023.06.01 |