Java/자바 학습
자바의 주요 메서드
lamarcK
2025. 4. 30. 22:49
- 개념 설명
- 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()