[Java]데이터 타입(Primitive & Reference)

오진석·2023년 7월 5일
0

JAVA

목록 보기
2/6

Primitive Type 기본형 타입

타입메모리 크기기본값표현범위
논리형boolean1 bytefalsetrue, false
정수형byte1 byte0-128 ~ 127
정수형short2 byte0-32,768 ~ 32,767
정수형int4 byte0-2,147,483,648 ~ 2,147,483,647
정수형long8 byte0L-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
실수형float4 byte0.0F≒ (3.4 X 10-38) ~ (3.4 X 1038)
실수형double8 byte0.0≒ (1.7 X 10-308) ~ (1.7 X 10308)
문자형char2 byte'\u0000'0 ~ 65,535

Primitive Type 변수들은 그냥 일반 변수이다. stack영역에 저장되며 사용이 종료되면 삭제된다.


Reference Type 참조형 타입

타입기본값할당되는 메모리 크기
배열형ArrayNull객체의 주소값을 저장할 4byte
열거형EnumerationNull객체의 주소값을 저장할 4byte
객체ClassNull객체의 주소값을 저장할 4byte
추상객체InterfaceNull객체의 주소값을 저장할 4byte

Reference Type 참조형 타입은 이름에서부터 알 수 있듯이 직접 어떤 영역에 저장되는 것이 아니라 해당 객체는 Heap영역에 저장되어있는 값의 주소를 가지고 있고 객체가 호출될 때 해당 객체가 주소값을 참조하는 형태로 값이 저장된다.

배열형 Array타입에는 primitive변수들로 이루어진 배열도 해당된다.

boolean[], char[], int[], float[]...

객체 타입 Wrapper class

기본 타입객체 타입할당되는 메모리 크기
객체booleanBoolean객체의 주소값을 저장할 4byte
객체byteByte객체의 주소값을 저장할 4byte
객체shortShort객체의 주소값을 저장할 4byte
객체intInteger객체의 주소값을 저장할 4byte
객체longLong객체의 주소값을 저장할 4byte
객체floatFloat객체의 주소값을 저장할 4byte
객체doubleDouble객체의 주소값을 저장할 4byte
객체charCharacter객체의 주소값을 저장할 4byte

Wrapper class도 기본적으로 객체이다, Reference Type에 속하고 주소값을 가지고 있으며 호출될 때 해당 객체가 Heap영역의 주소값을 참조하는 형태이다.

Stack영역과 Heap영역에 대해서 궁금하다면?!

*p.s Wrapper class는 일반 타입의 상위호환 꼴이어서 char의 Wrapper class가 String이라고 착각 할 수도 있지만, char의 Wrapper class는 Character이다. String은 문자열을 저장하기 위한 독립적인 Class이다.

0개의 댓글