[Java] Primitive type, Reference type

He SEO·2022년 3월 15일
0

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개의 댓글