일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- MYSQL
- 그래프
- SQL
- two pointer
- Dijkstra
- String
- 스토어드 프로시저
- DP
- Hash
- Two Points
- Trie
- 이진탐색
- Brute Force
- binary search
- Stored Procedure
- 다익스트라
- union find
Archives
- Today
- Total
codingfarm
JVM의 메모리구조 본문
응용프로그램이 실행되면, 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