Skip to content

Commit

Permalink
자바의 메모리 구조
Browse files Browse the repository at this point in the history
  • Loading branch information
5jisoo committed Oct 23, 2024
1 parent 01e26ea commit 21cb3d0
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 1 deletion.
7 changes: 6 additions & 1 deletion _posts/2024-10-22-process-and-thread.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ title: 프로세스와 스레드
date: 2024-10-22 18:20:00 +/-TTTT
categories: [Java, Thread]
tags: [os, process, thread] # TAG names should always be lowercase
description: 멀티태스킹과 멀티프로세싱의 개념을 정리합니다.
---

# 멀티태스킹과 멀티프로세싱
Expand Down Expand Up @@ -174,3 +173,9 @@ CPU 코어가 2개일때는 **물리적**으로 "완전히" 동시에 2개의

이런 과정을 **컨텍스트 스위칭**이라고 한다.

---

<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}
47 changes: 47 additions & 0 deletions _posts/2024-10-23-java-memory-structure.md
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}
Binary file added assets/img/2024-10-23-java-memory-structure/0.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 21cb3d0

Please sign in to comment.