우선 원시 타입과 참조 타입에 대해 알아보면 int와 Integer의 차이를 더 쉽게 이해할 수 있다.
원시 타입 vs 참조 타입
원시 타입
- stack에 값이 그대로 저장되는 타입을 말한다.
- 어딜 참조하고 있는게 아니므로 보다 빠르게 값에 접근할 수 있다.
참조 타입
- stack에 값이 그대로 저장되어 있지 않다.
- stack에는 heap의 어딘가를 가리키는 주소가 저장되어 있다. 해당 주소를 따라가면 값을 찾을 수 있다.
- 실제 값이 stack에 저장되어 있는 것이 아니라 stack을 갔다가 heap을 가서 해당 값을 찾아야하므로 원시 타입에 비해 데이터 접근 속도가 느리다.
- 참조 타입은 보통 원시 타입에 비해 기능을 더 많이 제공해준다. 그래서 메모리를 더 많이 잡아먹는다.
- 자바에서 원시 타입은 제네릭 타입을 사용할 수 없지만 참조 타입은 가능하다.
int와 Integer의 차이
int는 원시 타입이고 Integer는 int를 감싸서 만든 참조 타입이다.
따라서 int는 그냥 stack에 그 값이 저장되어 있지만 Integer는 stack에 heap을 가리키는 주소 값이 존재한다.
위에서 설명한 것처럼 int를 사용하는 것이 계산 속도와 메모리 사용 측면에서 이점이 있다.
단, java에서 int는 null을 넣을 수 없지만 Integer는 null을 처리할 수 있다. 그리고 Integer는 int를 감싸서 만든 것이므로 int를 갖고 할 수 있는 여러 메서드들을 제공해준다.
'프로그래밍 기초' 카테고리의 다른 글
CI/CD (2) | 2023.05.14 |
---|---|
클린 아키텍처 번역 (0) | 2023.03.28 |
커플링(coupling), 디커플링(decoupling) - 번역 (0) | 2022.10.22 |
의존성 주입(dependency injection) - 번역 (0) | 2022.10.22 |
dist 폴더 (0) | 2022.10.13 |