| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- Prosys Opc-ua 다운로드
- Blazor WebAssembly
- REST API
- C#이론
- spring spring boot 차이점 공통점
- 스프링부트회원가입
- C# Blazor
- 스프링부트의 장단점
- 프론트엔드
- 컴퓨터과학
- nosql
- CS
- 스프링부트 장점
- Blazor Web App
- Service Worker
- OPC-UA
- UaExpert download
- opc-ua 다운로드
- 스프링부트 단점
- cs기술면접
- UaExpert다운로드
- java란?
- C# CS
- OPC-UA Download
- 스프링 스프링부트 차이점 공통점
- java란 무엇인가
- jvm구성요소
- 기술면접
- prosys opc-ua
- 스프링부트로그인
Archives
- Today
- Total
담비의 개발블로그
[CS] 자바 메모리 영역&데이터 저장 방식(스택, 힙) 본문
자바 메모리 영역과 데이터 저장 방식
자바 프로그램이 실행될 때, 운영체제로부터 할당받는 메모리 영역 중 변수 저장과 관련하여 주로 사용되는 영역은 스택(Stack)과 힙(Heap)이다.
1. 스택 영역 (Stack Area)
저장 대상: 주로 원시 타입 변수의 실제 값과 참조 타입 변수의 주소값이 저장된다.
◆ 특징
▶ 메서드가 호출될 때마다 독립적인 공간(스택 프레임)이 생성되며, 메서드 실행이 끝나면 자동적으로 반환된다.
▶ 데이터가 LIFO(Last In, First Out) 구조로 쌓이고 제거되므로 접근 속도가 매우 빠르다.
▶ 고정된 크기의 데이터가 저장된다.
◆ 원시 타입의 저장(값 자체 저장)
원시 타입 변수를 선언하고 값을 할당하면, 그 값 자체가 스택 영역에 바로 저장된다.
| 변수 | 메모리 위치(스택) | 저장된 내용 |
| int num = 10; | num | 10 (실제 값) |
// b를 선언하면 스택에 새로운 공간이 생기고, a의 값인 10이 복사되어 저장된다.
int a = 10;
int b = a;
2. 힙 영역 (Heap Area)
저장 대상: 주로 참조 타입 변수가 가리키는 실제 객체(인스턴스) 데이터가 저장된다.
◆ 특징
▶ 객체가 생성될 때(보통 new 키워드를 사용) 동적으로 할당되며, 크기가 가변적이다.
▶ 더 이상 참조되지 않는 객체는 가비지 컬렉터(Garbage Collector)에 의해 자동으로 메모리가 정리된다.
▶ 상대적으로 스택 영역보다 느리게 접근된다.
◆ 참조 타입의 저장: 주소와 객체 분리 저장
참조 타입 변수를 선언하면 두 단계에 걸쳐 데이터가 저장된다.
1. 스택에 주소 저장: 참조 변수 자체는 힙 영역에 있는 객체의 주소(참조값)를 스택 영역에 저장한다.
2. 힙에 객체 저장: 실제 객체 데이터는 힙 영역에 생성되어 저장된다.
| 변수 | 메모리 위치(스택) | 저장된 내용 | 힙 영역 |
| String s = "Hello"; | s | 0x100 (힙 주소) | [객체 데이터] "Hello" (0x100) |
// s1이 스택에 저장되고, 힙에 생성된 객체의 주소(예 : 0x100)를 가진다.
String s1 = "Hello";
// s2가 스택에 생성되고, s1이 가지고 있던 주소 0x100을 복사해 저장한다.
// 결과적으로 s1과 s2 둘 다 힙 영역의 동일 "Hello" 객체를 참조하게 된다.
String s2 = s1;'CS(컴퓨터과학)' 카테고리의 다른 글
| [CS]2026.01.30 면접준비 (0) | 2026.01.31 |
|---|---|
| 자바(Java)란 무엇인가? (0) | 2025.11.27 |
| [CS] 원시타입 참조타입 (0) | 2025.10.21 |
| [CS]Node.js는 싱글스레드인데 비동기 처리 하는 원리 (2) | 2025.07.06 |
| rest api의 정의 (0) | 2025.03.27 |