본문 바로가기

카테고리 없음

[JAVA] primitive type & reference type

자바의 데이터 타입이다.

해당 데이터가 메모리에 어떻게 저장되고, 프로그램에서 어떻게 처리되어야 하는지

명시적으로 알려준다. 


기본형(Primitive type)

자바 언어에 내장된 기본형 타입이다.

null은 존재하지 않는다. 만약 기본형 타입에 null을 넣고 싶다면 래퍼 클래스를 활용한다.

실제 값을 저장하는 공간으로 stack 메모리에 저장된다.

wrapper class는 각 primitive type을 클래스로 만든 것이다.

만약 컴파일 시점에 담을 수 있는 크기를 벗어나면 컴파일 에러가 발생한다.

  타입 할당되는 메모리 크기 기본값 데이터의 표현 범위
논리형 boolean 1 byte false true, false
정수형 byte 1 byte 0 -128 ~ 127
  short 2 byte 0 -32,768 ~ 32,767
  int 4 byte 0 -2,147,483,648 ~ 2,147,483,647
  long 8 byte 0L -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
실수형 float 4 byte 0.0F (3.4 X 10-38) ~ (3.4 X 1038) 의 근사값
  double 8 byte 0.0 (1.7 X 10-308) ~ (1.7 X 10308) 의 근사값
문자형 char 2 byte (유니코드) '\u000' 0 ~ 65,535

참조형(Reference type)

기본형 타입을 제외한 타입들이 모두 참조형 타입이다.

빈 객체를 의미하는 null이 존재한다.

값이 저장되어 있는 곳의 주소값을 저장하는 공간으로 힙 메모리에 저장된다.

문법상으로는 에러가 없지만 실행시켰을 때 에러가 나는 런타임 에러가 발생한다.

타입 예시 기본값 할당되는 메모리 크기
배열 (Array) int[] arr = new int[5]; null 4 byte (객체의 주소값)
열거 (Enumeration)   null
클래스 (Class) String str = "sample";
Name name = new Name();
null
인터페이스 (Interface)   null