[Java] : 자바의 원시타입, 참조타입

dohyoungK·2024년 3월 12일
0

면접 스크립트

목록 보기
13/25
post-thumbnail

[Java] : 자바의 원시타입, 참조타입


자바에서는 데이터 타입에 크게 두가지 원시타입과 참조타입이 있다.

원시타입(Primitive Type)

원시타입은 정수, 실수, 문자, 논리 리터럴 등 실제 데이터 값을 저장하는 타입이다.

종류데이터형크기범위
논리형boolean1bittrue or false
문자형char2byte'\u0000' ~ '\uffff'
정수형byte1byte-128 ~ 127
정수형short2byte-32,768 ~ 32,767
정수형int4byte-2,147,483,648 ~ 2,147,483,647
정수형long8byte-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
실수형float4byte1.4E-45 ~ 3.4028235E38
실수형double8byte4.9E-324 ~ 1.7976931348623157E308

참조 타입(Reference Type)

참조타입은 원시타입을 제외한 타입으로, 객체의 주소를 저장하는 타입이다. 자바에서 실제 객체는 JVM의 힙 영역에 저장되며, 참조 타입 변수는 실제 객체 주소를 스택 영역에 저장한다. 그리고 객체를 사용할 때마다 참조 변수에 저장된 객체 주소를 불러와 사용한다.

Boxing, Unboxing

Boxing은 원시타입을 참조타입으로 변환시키는 것을 말하고, Unboxing은 참조타입을 원시타입으로 변환시키는 것을 말한다.

int i = 0;
Integer integer = i;

원시타입과 참조타입의 차이점

  • Null 포함 가능 여부 : 원시타입은 null을 담을 수 없지만, 참조타입은 가능하다.
int i = null; // 불가능
Integer integer = null; // 가능
  • 제네릭타입에서 사용 가능 여부 : 원시타입은 제네릭타입에서 사용할 수 없지만, 참조타입은 가능하다.
List<int> list; // 불가능
List<Integer> list; // 가능

0개의 댓글