목차
1. 참조형의 의미
📌 참조형 변수
값이 저장된 메모리 주소를 저장하는 변수입니다.
우리가 변수에 값을 저장한다고 할 때,
기본형은 그 값을 직접 저장하지만,
참조형은 값을 직접 저장하지 않고, 값이 저장된 위치(주소)를 저장합니다.
예를 들어:
int a = 10; // 기본형: 숫자 10 자체를 저장
String name = "Java"; // 참조형: "Java"라는 문자열이 저장된 주소를 저장
즉,
기본형 → 값 자체
참조형 → 값이 저장된 위치(주소)
2. 기본형 vs 참조형 비교
| 구분 | 기본형 (Primitive Type) | 참조형 (Reference Type) |
| 저장 내용 | 값 자체 | 값이 저장된 주소 |
| 데이터 크기 | 고정 (1~8바이트) | 가변 |
| 예시 | int, double, boolean | String, Array, Scanner, List |
| 메모리 저장 위치 | 스택(Stack) 영역 | 스택에 주소, 힙(Heap)에 실제 값 |
| 메서드 사용 | 불가능 | 객체 메서드 사용 가능 |
3. 참조형의 사용 이유
기본형은 정해진 크기의 단순한 데이터만 다룰 수 있습니다.
하지만 실제로는 문자열, 배열, 객체처럼 복잡하고 다양한 데이터를 다뤄야 할 경우가 많죠.
이럴 때 필요한 것이 바로 참조형 변수입니다. 참조형을 통해:
- 크기가 크거나 구조적인 데이터도 쉽게 저장하고
- 여러 개의 변수나 메서드가 동일한 데이터를 함께 참조할 수 있습니다.
4. 메모리 구조 차이
Java에서 변수의 메모리 저장 방식은 다음과 같이 나뉩니다.
- 기본형 변수는 스택(Stack) 메모리에 직접 값이 저장됩니다.
- 참조형 변수는 스택에는 주소만 저장되고, 실제 데이터는 힙(Heap) 영역에 저장됩니다.
// 예시
String name = "Java";
[Stack] name → [주소값]
[Heap] 주소값 → "Java"
이 구조 덕분에 여러 변수가 같은 객체를 참조하거나, 크기가 큰 데이터도 효율적으로 관리할 수 있습니다.
5. 참조형 변수의 특징
📌 null 값
- 참조형 변수는 기본형과 달리 null 값을 가질 수 있습니다.
- null은 아무 값도 참조하지 않는 상태, 즉 "참조 대상이 없음"을 뜻합니다.
String text = null; // 어떤 문자열도 참조하고 있지 않음
- 이 상태에서 text.length()처럼 메서드를 호출하려 하면 NullPointerException이 발생합니다.
- 그래서 참조형을 사용할 때는 null 체크가 매우 중요합니다.
📌 객체와의 관계
- 참조형 변수는 대부분 클래스를 기반으로 만들어진 객체를 저장합니다.
- String, Scanner, ArrayList, HashMap 등은 모두 참조형 변수로 선언하며,
내부적으로 다양한 기능(메서드)을 가지고 있죠. - 즉, 참조형 변수는 Java의 객체 지향 프로그래밍(OOP)의 핵심을 이루는 요소입니다.
마무리
다음 게시글에서는 변수의 명명규칙에 대해서 학습하겠습니다.
'study > Programming' 카테고리의 다른 글
| [JAVA 기초] 형 변환 (Casting) (1) | 2025.04.09 |
|---|---|
| [JAVA 기초] 변수의 명명 규칙 (1) | 2025.04.08 |
| [JAVA 기초] 기본 자료형 (0) | 2025.04.06 |
| [JAVA 기초] Java 자료형의 개요 (0) | 2025.04.05 |
| [JAVA 기초] 변수란 무엇인가? (0) | 2025.04.04 |