Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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
Archives
Today
Total
관리 메뉴

codingfarm

JVM의 메모리구조 본문

Programming Language/JAVA

JVM의 메모리구조

scarecrow1992 2020. 10. 11. 01:28

응용프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다. 그 중 3가지 주요영역(method area, 호출스택, heap)에 대해서 알아보자.

 

1. 메서드영역(method area)

$\bullet$ 프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스파일(*.class)을 읽어서 분석하여 크래스에 대한 정보(클래스 데이터)를 이곳에 저장한다.

$\bullet$ 그 클래스의 클래스변수(class variable)도 이 영역에 함께 생성된다.

 

2. 힙(heap)

$\bullet$ 인스턴스가 생성되는공간.

$\bullet$ 프로그램 실행 중 생성되는 인스턴스는 모두 이곳에 생성된다.

$\bullet$ 즉, 인스턴스변수(instance variable), new 키워드로 생성된 객체와 배열이 생성되는 공간이라 보면된다.

 

3. 호출스택(call stack 또는 execution stack)

$\bullet$ 메서드의 작업에 필요한 메모리 공간을 제공한다.

$\bullet$ 메서드가 호출되면, 호출스택에 호출된 메서드를 위한 메모리가 할당되며, 미 메모리는 메서드가 작업을 수행하는 동안 지역변수(매개변수 포함)들과 연산의 중간결과 등을 저장하는데 사용된다.

$\bullet$ 그리고 메서드가 작업을 마치면 할당되었던 메모리공간은 반환되어 비워진다.

 

 

 

 

 

'Programming Language > JAVA' 카테고리의 다른 글

변수  (0) 2020.11.02
객체지향 프로그래밍  (0) 2020.11.01
배열(Array)  (0) 2020.11.01
JDK(Java Development Kit)  (0) 2020.10.10
개요  (0) 2020.10.10
Comments