JVM이란?
Java Virtual Machine. (가상 머신 : 프로그램을 실행하기 위해 물리적 머신과 유사한 머신을 소프트웨어로 구현한 것)
- 우리가 작성한 자바 프로그램이 수행되는 프로세스를 의미함.
- 다시 말해, java라는 명령어를 통해 애플리케이션이 수행되면, 이 JVM 위에서 애플리케이션이 동작함.
JVM은 JAVA와 OS사이에서 중개자 역할을 수행.
그리고 가장 중요한 메모리관리, Garbage Collection을 수행.
왜 자바 가상머신을 알아야 하는가?
사용자가 많아지는 애플리케이션일수록, 한정된 메모리를 효율적으로 사용하여 최고의 성능을 내기 위해 노력해야 한다.
따라서, 메모리 효율성을 위해 메모리 구조를 알아야 하는 것은 필수이다.
자바 프로그램 실행 과정
1. 프로그램이 실행되면 JVM은 OS로부터 이 프로그램이 필요로 하는 메모리를 할당 받는다.
JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다.
2. 자바 컴파일러(javac)가 자바 소스코드(.java)를 읽어들여 자바 바이트코드(.class)로 변환시킨다.
3. Class Loader를 통해 class파일들을 JVM으로 로딩한다.
4. 로딩된 class파일들은 Execution Engine을 통해 해석된다.
5. 해석된 바이트코드는 Runtime Data Areas에 배치되어 실질적인 수행이 이루어진다.
이러한 실행 과정 속에서 JVM은 필요에 따라 Thread Synchronization과 Gabage Collection같은 관리 작업을 수행한다.
*** 자바의 신(이상민 저)을 공부한 내용 중에 기억해야 할 개념들을 정리해 놓은 글 입니다.***
내용 일부 및 그림 출처 : asfirstalways.tistory.com/158?category=660807
'Java' 카테고리의 다른 글
[JAVA] 10. 자바 컬렉션(List편) (0) | 2021.04.30 |
---|---|
[JAVA] 9. 특별한 java.lang 패키지 (0) | 2021.04.30 |
[JAVA] 7. 자주 쓰는 어노테이션(@) 종류 (0) | 2021.04.29 |
[JAVA] 6. StringBuffer vs StringBuilder (0) | 2021.04.29 |
[JAVA] 5. 일부 완성되어 있는 abstract 클래스 (0) | 2021.04.29 |