
Java를 처음 배우면 가장 많이 헷갈리는 부분 중 하나가
바로 기본 자료형(Primitive Type)과 참조 자료형(Reference Type) 이다.
두 자료형은 메모리에 저장되는 방식부터 다르며, 코드에서 사용하는 방법도 크게 차이가 있다.
1. 기본 자료형 (Primitive Type)
📌 특징
- 자바에서 가장 기본이 되는 데이터 타입
- 변수에 값 자체가 저장됨 → 스택(Stack) 메모리에 저장
- 미리 정해진 크기와 형태를 가지며, 객체가 아님 → null 저장 불가
- 연산이 빠르고 메모리 사용이 효율적임
📋 종류 (총 8가지)
종류 자료형 크기 기본값 예시
| 논리형 | boolean | 1bit (JVM마다 다를 수 있음) | false | true, false |
| 문자형 | char | 2byte (유니코드) | '\u0000' | 'A', '가' |
| 정수형 | byte | 1byte | 0 | 127, -128 |
| short | 2byte | 0 | 1000 | |
| int | 4byte | 0 | 100000 | |
| long | 8byte | 0L | 10000000000L | |
| 실수형 | float | 4byte | 0.0f | 3.14f |
| double | 8byte | 0.0d | 3.141592 |
👉 예시 코드
int age = 25; // 값 자체가 저장됨
double pi = 3.14; // 소수 저장
boolean isTrue = true;
2. 참조 자료형 (Reference Type)
📌 특징
- 객체(Object)의 주소값을 저장하는 타입
- 실제 데이터는 힙(Heap) 영역에 저장되고, 변수에는 그 데이터가 저장된 메모리 주소를 참조
- null 저장 가능 (즉, 아무 객체도 참조하지 않음)
- 기본 자료형을 제외한 모든 타입이 참조 자료형임
📋 종류
- 클래스 (ex. String, Scanner, 사용자 정의 클래스)
- 인터페이스
- 배열 (int[], String[])
- 열거형 (enum)
👉 예시 코드
String name = "Java"; // 실제 "Java"는 Heap에 저장되고, name 변수는 그 주소를 참조
int[] numbers = {1, 2, 3}; // 배열 역시 참조 자료형
3. 기본 자료형 vs 참조 자료형 비교
구분 기본 자료형 참조 자료형
| 저장 방식 | 값 자체 저장 | 객체의 주소값 저장 |
| 저장 위치 | 스택(Stack) | 힙(Heap) |
| 크기 | 고정 | 가변적 |
| null 허용 여부 | 불가능 | 가능 |
| 예시 | int, double, boolean | String, ArrayList, int[] |
4. 자주 헷갈리는 부분: Wrapper 클래스
기본 자료형을 객체처럼 다루기 위해 자바에서는 Wrapper 클래스를 제공한다.
예를 들어, int → Integer, double → Double 형태로 사용 가능하며, 컬렉션 프레임워크 등 객체만 저장할 수 있는 자료구조에서 활용된다.
int a = 10; // 기본 자료형
Integer b = Integer.valueOf(10); // 참조 자료형 (Wrapper)
마무리
- 기본 자료형은 단순하고 빠르게 값을 저장하는 방식
- 참조 자료형은 객체와 관련된 다양한 기능을 제공하는 방식
- 자바에서는 상황에 맞게 두 가지 자료형을 적절히 섞어서 사용해야한다.
👉 초보자라면 변수 선언 시 내가 값 자체를 저장하려는지, 객체를 다루려는지부터 구분하는 습관을 들이면 큰 도움이 됩니다.


'Java' 카테고리의 다른 글
| [Java] 클래스 메소드(static 메소드) vs 인스턴스 메소드 (0) | 2025.10.03 |
|---|---|
| [Java] 기본형 매개변수와 참조형 매개변수 (0) | 2025.10.03 |
| [Java] 진법 변환 정리 (n진수 <-> 10진수) (0) | 2025.08.30 |
| [Java] Integer.valueOf()와 Integer.parseInt()의 차이 (1) | 2025.08.20 |
| [Java] Scanner vs BufferedReader 비교해보자 (2) | 2025.07.15 |