primitive type
- 실제 데이터 값을 저장하는 타입
- 스택에 값 존재
reference type
- 인스턴스 번지 값(주소 값)을 저장하는 타입
- 스택에 번지 값 존재
- 힙에 실제 값(인스턴스) 존재
reference 타입을 사용하는 이유는?
1. null을 담을 수 있는가?
- primitive type: X
- reference type: O
2. 제네릭 타입을 사용할 수 있는가?
- primitive type: X
- reference type: O
primitve 타입을 사용하는 이유는?
1. 접근 속도
primitive type: 스택에 메모리 존재
reference type: 참조 값은 스택, 실제 값은 힙에 존재. 실제 값 필요할 때마다 언박싱 과정 필요.
2. 차지하는 메모리 양
primitive type<< reference type
결론
성능과 메모리 장점이 있는 primitive 타입을 먼저 고려한다. 만약 null을 다뤄야 하거나, 제네릭 타입이 사용되어야 한다면 reference 타입을 사용한다.
주의
참조 변수는 비교 연산 시 주의가 필요하다. 참조 변수는 객체 번지 값을 가지고 있기 때문에, value 비교가 의도라면 ==가 아닌 equals()를 사용해야 한다.
'Programming > Java' 카테고리의 다른 글
Generic Class (Basic) (0) | 2022.02.22 |
---|---|
Collection (0) | 2022.02.11 |
Default Method in Interface (0) | 2021.11.22 |
JAVA 25(3) 어노테이션 (0) | 2021.09.17 |
JAVA 22(2) 제네릭 2 (0) | 2021.08.14 |