본문 바로가기
코딩테스트(JAVA)

[코딩테스트] 프리미티브 타입(Primitive Type)과 레퍼런스 타입(Reference Type)

by goblin- 2025. 1. 30.

 

1. 프리미티브 타입 (Primitive Type)

 

특징

자바에서 가장 기본적인 데이터 유형

값을 직접 메모리에 저장

스택(Stack) 메모리에 할당되어 빠르게 접근 가능

객체가 아니므로 null을 가질 수 없음 (기본적으로 값이 설정됨)

래퍼 클래스(Integer, Double 등)를 통해 객체화 가능

 

종류

byte, short, int, long, float, double, char, boolean 

 

예제

int a = 10;
double b = 3.14;
boolean c = true;

a는 스택에 10을 직접 저장

b는 스택에 3.14를 직접 저장

c는 스택에 true를 직접 저장

 

2. 레퍼런스 타입 (Reference Type)

 

특징

객체(Object)나 배열(Array)와 같이 주소값을 저장하는 타입

실제 데이터는 힙(Heap) 메모리에 저장되며, 스택에는 객체의 **주소(reference)**가 저장됨

null 값을 가질 수 있음 (초기화하지 않으면 null)

 

종류

클래스(String, Integer, ArrayList 등)

배열(int[], double[] 등)

인터페이스

열거형(enum)

 

예제

String str = "Hello";
int[] numbers = {1, 2, 3};
Integer num = 100;

str"Hello"라는 문자열을 힙에 저장하고, 스택에는 해당 문자열의 참조값(주소)을 저장

numbers 배열은 힙에 배열을 저장하고, 스택에는 배열의 참조값을 저장

numInteger 객체로 힙에 100을 저장하고, 스택에는 참조값을 저장

 

3. 프리미티브 타입 vs 레퍼런스 타입의 차이점