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
- 단일책임원칙
- stack메모리
- 객체지향
- Runtime data Area
- Data Structure
- CS
- Spring
- Heap
- solid
- pc register
- Open Closed Principle
- 스택메모리
- 단일 책임 원칙
- 자바 heap
- Execution Engine
- Java
- 자바
- 스택
- Spring SOLID
- 개방-폐쇄 원칙
- Single Responsibillity Principle
- JVM
- 객체지향 설계 5원칙
- Native Method Stack
- 개방폐쇄원칙
- 의존성 역전 원칙
- Class Loader
- Stack
- 실행 엔진
- 자료구조
Archives
- Today
- Total
Juuunew 살아남기
[JAVA] JVM 01 - JVM이란? / JVM의 구조 본문
JVM ?
Java Virtual Machine의 줄임말로 자바 프로그램 실행환경을 만들어주는 소프트웨어이다.
JVM은 Java Application이 OS에 상관없이 실행할 수 있게 해준다. (플랫폼으로부터 독립적이게 만들어 줌)
🌟 자바 바이트 코드 ( .class )를 OS에 맞는 코드로 변환하여 실행해주는 역할.
자바 어플리케이션의 실행과정
- 자바 어플리케이션 실행
- JVM이 OS로부터 메모리를 할당받음 ( JVM은 할당받은 메모리를 용도에 따라 영역을 구분하여 관리 )
- 자바 컴파일러 ( javac )가 자바 소스코드( .java )를 읽어 바이트 코드( .class )로 변환
- 클래스 로더를 통해 변환된 바이트 코드를 JVM으로 로딩
- 로딩된 바이트 코드는 실행 엔진을 통해 해석됨
- 해석된 바이트 코드는 JVM 메모리 영역(Runtime Data Area)에 배치되어 실행됨
JVM의 구조
JVM은 크게 아래와 같이 구성되어있다.
- 클래스 로더 ( Class Loader )
- 메모리 ( Runtime Data Area )
- Method Area
- PC ( Program Counter ) register
- Native method stack
- Stack
- Heap
- 실행 엔진 ( Execution Engine )
- 인터프리터 ( Interpreter )
- JIT 컴파일러 ( Just-in-Time Compiler )
- 가비지 컬렉터 ( Garbage Collector )
💡 공부 중 정리하는 내용이므로 부족한 부분이 있을 수 있습니다.
💡 참고자료
'Language > JAVA' 카테고리의 다른 글
[JAVA] JVM 03 - 실행 엔진 (Execution Engine) (0) | 2023.01.12 |
---|---|
[JAVA] JVM 02 - 클래스 로더 (Class Loader) (0) | 2023.01.11 |
[JAVA] 메모리 - Heap (0) | 2023.01.02 |
[JAVA] 메모리 - Stack (2) | 2022.12.27 |
[JAVA] 데이터 타입 - 기본 타입(Primitive Type), 참조 타입(Reference Type) (0) | 2022.10.08 |