- 개념 설명
- toString(): 객체를 문자열로 표현 (JS의 toString()과 유사)
- equals(): 객체의 내용 비교 (JS의 === 연산자와 유사)
- hashCode(): 객체의 해시코드 값 반환
- clone(): 객체의 복사본 생성
- valueOf(): 다른 타입의 값을 특정 타입으로 변환 (JS의 parseInt() 등과 유사)
- 비유 설명
- toString(): 객체의 "명함" 같은 역할
- equals(): 두 물건의 내용물을 꺼내서 하나하나 비교하는 것
- clone(): 복사기로 문서를 복사하는 것과 유사
- 사용 목적
- toString(): 객체 정보의 문자열 표현이 필요할 때
- equals(): 객체의 내용 비교가 필요할 때
- hashCode(): 해시 기반 컬렉션에서 사용
- clone(): 객체의 깊은 복사가 필요할 때
- valueOf(): 타입 변환이 필요할 때
- 자주하는 실수
- equals()와 == 연산자 혼동
- hashCode()와 equals() 한쪽만 재정의
- clone() 사용 시 깊은 복사/얕은 복사 구분 못함
- toString() 재정의 시 모든 필드 포함 안 함
- 비교표
기준 | equals() | == 연산자 |
---|---|---|
비교대상 | 객체의 내용 | 참조값 |
재정의 | 가능 | 불가능 |
널 처리 | NPE 발생가능 | 안전 |
- NullPointerException(NPE)은 Java에서 가장 흔히 발생하는 런타임 예외
- 개념:null인 객체(참조변수)를 통해 메서드를 호출하거나 필드에 접근하려 할 때 발생하는 예외
- 쉽게 말해, '없는 것'을 사용하려 할 때 발생하는 오류
- 빈 컵에서 물을 따르려는 것과 같은 상황
- 존재하지 않는 전화번호로 전화를 거는 것과 유사
- 실무 활용 예시
- toString(): 로깅, 디버깅
- equals(): 객체 비교 로직
- hashCode(): HashMap, HashSet 사용
- clone(): DTO 복사
- valueOf(): 문자열 파싱, 타입 변환
추가로 자주 사용되는 컬렉션 관련 메서드:
- add()
- remove()
- contains()
- size()
- isEmpty()
'자바 > 자바 기초' 카테고리의 다른 글
클래스의 final (0) | 2025.05.01 |
---|---|
자바의 클래스(Class) (0) | 2025.05.01 |
자바와 자바스크립트의 차이점 (0) | 2025.04.30 |
2. 자바의 자료형(Data Type) (0) | 2025.04.28 |
1. 자바 파일 생성하기 (0) | 2025.04.28 |