728x90
JRE (Java Runtime Environment)
- 자바를 실행하기 위해 필요한 JVM과 기타 API들을 포함하여 실행환경을 제공한다.
JVM (Java Virtual Machine)
- 자바 가상 머신
- 일반적인 네이티브 언어들은 운영체제마다 각자 다른 컴파일러를 사용해서 기계어로 번역함 EX) 윈도우는 exe 파일을 생성
- 하지만 자바는 결과물이 운영체제에 종속되지 않고 자바 컴파일러가 생성한 바이트 코드를 JVM이 인식해서 실행하게 된다.
1. ClassLoader
- 자바 컴파일러가 생성한 .class 파일을 메모리에 올린다(loading).
2. Execution Engine (실행 엔진)
- ClassLoader가 메모리에 올리면 class 파일을 해석한다.
- GC를 포함하고 있다.
3. Garbage Collector (GC)
- .class 파일이 실행되고 나서의 메모리를 관리해줌
- C계열 언어에서는 포인터를 이용하여 개발자가 직접 관리
- 자바에서는 GC가 Heap영역의 더 이상 참조되지않는 메모리를 판단하고 회수한다.
728x90
'Java' 카테고리의 다른 글
[자바] hashCode() (0) | 2020.09.17 |
---|---|
[자바] Collections 자료구조 (0) | 2020.09.15 |
[자바] 인터페이스 (Interface) (0) | 2020.09.15 |
[자바] JRE, JDK (0) | 2020.09.15 |
[자바 이슈] Comparator 사용 관련 주의 (0) | 2020.09.09 |
댓글