[Java] 'primitive type' vs 'reference type'

primitive type(기본형 타입)
- byte, short, int, long, float, double, char, boolean
- 기본값 존재 o => Null 개념 x
- 실제 값을 저장하는 공간
- 스택 메모리에 저장
- 컴파일 에러 발생
reference type(참조형 타입)
- Integer, Long, Float, Double, String, class ... (primitive type 제외한 모든 타입)
- Null 개념 o
- 값이 저장되어 있는 곳의 주소값을 저장하는 공간
- 힙 메모리에 저장
- 런타임 에러 발생
비교
- 가장 큰 차이는 메모리 저장 방식으로 primitive type은 값 자체를 스택 메모리에 저장, reference type은 객체의 메모리 주소를 힙 메모리에 저장
- primitive type이 reference type 보다 연산 속도가 빠르다!!
- primitive type은 간단한 값 처리에 👍
- reference type은 가비지 컬렉션에 의해 메모리 관리 가능, 객체 지향 프로그래밍 가능하게 함 👍
- reference type만 제네릭 타입에서 사용 가능!