티스토리 뷰

JAVA/JAVA기본

JAVA - main 메서드의 용도

realizers 2021. 6. 25. 22:06
728x90
반응형

main 메서드는 프로그램이 실행되는 시작점입니다. 이번에는 main() 메서드가 실행될 때 메모리가 어떤 일이 나타나는지 알아보겠습니다.

이름 설명
JDK 자바 개발 도구
JRE 자바 실행 환경
JVM 자바 가상 기계

 

 

Step 01 - JRE의 실행

JRE는 먼저 Class내부에 main() 메서드가 있는지 확인 합니다. JRE는 Test 클래스에서 main() 메서드가 존재하면 JRE는 프로그램 실행을 위한 사전 준비에 착수하게 됩니다. 그렇게 되면 가상 기계인 JVM에 전원을 넣어 부팅하게 됩니다. 부팅된 JVM은 목적 파일을 받아 그 목적 파일을 실행하게 됩니다. 

 

Step 02 - JVM의 실행 - 스태틱 영역에 할당하기

JVM이 맨 처음에 하는 일은 전처리하고 하는 과정입니다. 모든 자바 프로그램은 기본적으로 java.lang패키지를 포함하게 되는데 JVM은 java.lang 패키지를 스태틱 영역에 올려놓게 됩니다. 

다음으로 JVM은 모든 클래스와 import 패키지까지 스태틱 영역에 올려놓습니다.

 

Step 03 - JVM의 실행 - 스택 영역에 할당하기

main() 메서드가 실행되기 위해서는 스택 영역에 할당됩니다. 그런 다음 메서드의 인자 args를 저장할 변수 공간을 스택 영역의 맨 밑에 확보해야합니다. 즉 메서드의 인자를 변수 공간에 할당하는 것입니다. 그제서야 main() 메서드가 실행되게 됩니다.

 

Step 03 - 01 - main() 내부에 변수 할당

main() 메서드 스택 영역 안에 밑에서부터 변수 공간을 마련하게 됩니다.

 

Step 04 - JVM의 실행 - 힙 영역에 할당하기

객체 멤버 변수들은 객체와 함께 가비지 컬렉터라고 하는 힙 메모리 회수기에 의해 일생을 연맹하게 됩니다.

728x90
반응형