티스토리 뷰

Language/Java

[Java] JVM 메모리 관리

DUCKBAE's 2022. 6. 11. 23:48

Runtime Data Area

JVM의 메모리 영역으로, 어플리케이션이 실행할 때 사용되는 데이터들을 적재하는 영역이다.

 

Method Area

모든 쓰레드가 공유하는 메모리 영역이다.

  • 런타임 상수 풀, 필드 및 메서드 데이터, 메서드에 대한 코드와 같은 클래스별 구조를 저장한다.

 

Heap

인스턴스화 된 객체를 저장하는 영역이다.

  • Heap에 있는 객체는 어플리케이션이 실행되는 동안 스레드 간에 공유가 가능하다.

 

Stack

각 스레드들은 자신만의 Stack 메모리를 갖는다.

  • LIFO (Last-In First-Out) 구조를 지닌다.

 

PC Register

스레드(하나의 프로그램 내에서 실행되는 메서드)가 생성될 때마다 생성되는 공간이며, 현재 실행되는 JVM의 명령어 주소를 가지고 있다.

 

Native Method Stack

native method의 변수를 저장하는 공간이다.

  • JNI(Java Native Interface)라는 표준규약을 통해서 다른 언어에서 제공하는 메서드를 사용한다.

 

참고

https://www.azul.com/blog/what-is-java-heap-size/

 

What is Java Heap Space?

The Java heap is the area of memory used to store objects instantiated by applications running on the JVM. When the JVM is started, heap memory is created

www.azul.com

https://velog.io/@kyukim/1-yylklo8g

 

JVM 메모리 구조

JVM 메모리 구조를 검색하던 중에 가장 이해하기 쉬웠던 페이지. slideplayer 에 올라온 ppt인데 이유는 모르겠지만 내용 편집이 이상하게 되어 있음. 마크다운으로 보기좋게 재편집함.

velog.io

 

'Language > Java' 카테고리의 다른 글

[Java] Stack & Queue  (0) 2022.06.27
[Java] StringBuffer & StringBuilder  (0) 2022.06.22
[Java] String  (0) 2022.06.21
[Java] 변수  (0) 2022.06.12
[Java] 기본형과 참조형  (0) 2022.06.09
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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 31
글 보관함