generated from cotes2020/chirpy-starter
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
53 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
--- | ||
title: 자바의 메모리 구조 | ||
date: 2024-10-23 17:30:00 +/-TTTT | ||
categories: [Java, Thread] | ||
tags: [java, memory, structure] # TAG names should always be lowercase | ||
image: | ||
path: /assets/img/2024-10-23-java-memory-structure/0.png | ||
alt: 자바의 메모리 구조 썸네일 | ||
--- | ||
|
||
![img](/assets/img/2024-10-23-java-memory-structure/0.png){: w="600" } | ||
|
||
## 메서드 영역 | ||
|
||
메서드 영역은 프로그램을 실행하는데 필요한 **공통 데이터를 관리**한다. | ||
|
||
이 영역은 **프로그램의 모든 영역에서 공유**한다. | ||
|
||
1. 클래스 정보 : `클래스의 실행 코드(바이트 코드)`, `필드`, `메서드와 생성자 코드` 등 모든 실행 코드 | ||
2. static 영역 : `static 변수` 보관 | ||
3. 런타임 상수 풀 : 프로그램을 실행하는데 필요한 `공통 리터럴 상수`를 보관 | ||
|
||
## 스택 영역 | ||
|
||
자바 실행 시, 하나의 실행 스택이 생성된다. | ||
|
||
각 스택 프레임은 `지역 변수`, `중간 연산 결과`, `메서드 호출 정보` 등을 포함한다. | ||
|
||
- 스택 프레임: 스택 영역에 쌓이는 네모 박스가 하나의 **스택 프레임**이다. <br> | ||
<u>메서드를 호출할 때 마다</u> 하나의 스택 프레임이 쌓이고, 메서드가 종료되면 해당 스택 프레임이 제거된다. | ||
|
||
> 스택 영역은 더 정확히는 각 스레드별로 하나의 실행 스택이 생성된다. <br> | ||
> 따라서 **스레드 수 만큼 스택이 생성**된다. | ||
{: .prompt-tip} | ||
|
||
## 힙 영역 | ||
|
||
객체(인스턴스)와 배열이 생성되는 영역이다. | ||
|
||
가비지 컬렉션(GC)이 이루어지는 주요 영역이며, **더 이상 참조되지 않는 객체는 GC에 의해 제거**된다. | ||
|
||
--- | ||
|
||
<br> | ||
|
||
> 이 포스트는 ["김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성"](https://www.inflearn.com/course/%EA%B9%80%EC%98%81%ED%95%9C%EC%9D%98-%EC%8B%A4%EC%A0%84-%EC%9E%90%EB%B0%94-%EA%B3%A0%EA%B8%89-1) 강의를 듣고 작성하였습니다! | ||
{: .prompt-info} |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.