자바에서 작성한 코드가 컴파일되어 실행되기까지의 과정을 피상적으로만 알고 있어
실제로 main메서드가 실행되는 과정을 알고 싶어 정리해봅니다.
main() 메서드
- 프로그램이 실행되는 시작점
main()메서드가 실행되기전에 JRE와 JVM에서 일어나는 일들
1. JRE(Java RunTime Environment)
-프로그램에 main() 메서드가 있는지 확인한다.
-main() 메서드가 있는지 확인이 되면, 프로그램 실행을 위해 JVM에 전원을 넣어 부팅한다.
2. JVM이 목적파일을 실행하기 위해 하는 과정
-java.lang패키지를 T메모리의 스태틱 영역에 배치
-import된 패키지를 T메모리의 스태틱 영역에 배치
-작성된 모든 클래스를 T메모리의 스태틱 영역에 배치
* JVM 하는일
-목적파일을 받아 목적파일을 실행한다.
3. 스택영역 및 args인자를 저장할 변수공간 스택 프레임
-여는중괄호(main메서드의 "(")가 있을시에 하나씩 생성됨 T메모리에 스택프레임 스택영역 할당
-main메서드의 인자 args를 저장할 변수공간 스택 프레임의 밑에 생성
-그리고 main메서드의 첫 명령문 실행
4. main메서드 실행이 종료되면
-JRE는 JVM을 종료, JRE자체도 OS상의 메모리에서 사라지고, T메모리도 생명주기가 끝남.