[Java] Primitive type, Reference type

He SEO·2022년 3월 15일

Data type이란 해당 데이터가 메모리에 어떻게 저장되고, 프로그램에서 어떻게 처리되어야 하는지를 명시적으로 알려주는 것이다. 자바에서 타입은 크게 기본형 타입(원시 타입)과 참조형 타입이 있다.

Primitive Type

  • 총 8가지의 primitive type을 미리 정의하여 제공
  • 기본값이 있기 때문에 null이 존재하지 않음. 만약 기본형 타입에 null을 넣고 싶다면 wrapper class 활용
  • 실제값을 저장하는 공간으로 stack 메모리에 저장됨
  • 컴파일 시점에 담을 수 있는 크기를 벗어나면 에러를 발생시키는 컴파일 에러가 발생

Reference Type

  • Primitive type을 제외한 모든 타입
  • 빈 객체를 의미하는 null이 존재
  • 값이 저장되어 있는 곳의 주소값을 저장하는 공간으로 stack 메모리에 저장함
  • heap 메모리에 실제 객체와 배열 등이 생성됨 (주소는 heap 영역)
  • 크기가 정해져 있지 않고 프로그램 실행시 메모리에 동적 할당됨
  • 실행시켰을 때 에러가 나는 런타임 에러가 발생. 예를 들어 객체나 배열을 null 값으로 받으면 nullpointException이 발생할 수 있음

차이점

Null 포함 가능 여부

원시 타입은 null을 담을 수 없지만, 참조 타입은 가능

int i = null; //불가능
Integer integer = null; //가능

Generic Type에서 사용 가능 여부

원시 타입은 사용할 수 없지만, 참조 타입은 가능

List<int> list; //불가능
List<Integer> list; //가능

참고 사이트

profile
BACKEND 개발 기록 중. 감사합니다 😘

0개의 댓글