반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 부산외대
- 파이데이아창의인재학과
- 미국대학
- 미국유학생활
- i-20
- 케네스로그
- 만다라트프로젝트
- 케네스
- 미국대학생활
- Kenneth Park
- 사이드프로젝트
- CSUS
- 유학생대학생활
- California State University Sacramento
- JVM아키텍처
- java
- 자바 스터디
- 2+2
- F1학생비자
- jpa
- Java 스터디
- 해외유학
- 미국유학생
- 미국유학
- 복수학위제도
- 개인 프로젝트 개발일지
- 개발일지
- 자바
- 유학생 준비물
- 비전공자 git
Archives
- Today
- Total
케네스로그
[Java] JVM 아키텍처(2) - 런타임 데이터 영역 Runtime Data Area 본문
반응형
이전 글에서는 JVM의 아키텍처와 클래스로더에 대해 알아보았다. 이번글에서는 JVM에서 실제로 변수를 저장/활용할 수 있는 공간인 런타임 데이터 영역에 대해 알아보자.
런타임 데이터 영역(Runtime Data Area)
자동차가 달리기 위해선 도로가 필요로 하며, 기차가 움직이기 위해선 레일이 필요하다. Java프로그램을 실행하기 위해서는 클래스파일을 저장/실행하기 위해 컴퓨터 내부의 메모리 공간이 필요하다. 이것을 담당하는 것이 JVM의 Runtime Data Area이다. 이것은 5개의 영역으로 나누어진다.
1. 메소드영역(Method Area)
모든 클래스 레벨의 데이터가 저장된다.
Person이라는 클래스의 멤버로 isLive라는 변수가 정의되어있다. 이 때, Method area에는 이러한 클래스 멤버 변수인 isLive가 저장된다.
2. 힙 메모리(Heap Memory)
모든 객체와 인스턴스 변수가 저장된다.
Person클래스를 기반으로 p1이라는 객체를 생성했다. 이렇게 생성된 객체는 heap memory에 저장된다.
3. 스택 메모리(Stack Memory)
스택 메모리는 3가지로 나누어볼 수 있다.
- Local Variable
- Operand Stack: 메소드 내부의 모든 연산자
- Frame Data: 예외처리를 위한 try/catch블록
4. PC Register
현재 실행중인 명령이 저장된다.
5. Native Method Stack
다른 언어로 작성된 라이브러리의 메소드들이 저장된다.
반응형
'Dev > Java' 카테고리의 다른 글
[Java] 데이터 타입, 범위, 기본값 (0) | 2022.01.30 |
---|---|
[Java] JVM 아키텍처(3) - 실행 엔진 Execution Engine (0) | 2021.10.13 |
[Java] JDK와 JRE의 비교 (0) | 2021.10.09 |
[Java] JVM 아키텍처(1) - JVM구조, 클래스로더 ClassLoader (0) | 2021.10.09 |
[Java] 자바의 컴파일 과정 (0) | 2021.10.04 |