main() 메서드 : 메서드 스택 프레임

main() 메서드는 프로그램이 실행되는 시작점이다. main() 메서드가 실행될 때 메모리, 특히 T 메모리엔 어떤 일이 일어날까?

public class Start {
    public static void main(String[] args) {
        System.out.println("Hello OOP!!!");
    }
}

main() 메소드가 실행되기 전 JVM에서 수행하는 전처리 작업들

메소드가 실행되기 위해 스택 프레임이 스택영역에 할당된다.

메인 메소드가 실행되려면 메소드의 인자 args를 저장할 변수 공간을 스택 프레임 맨 밑에 확보해야 한다. 메소드의 인자의 변수 공간을 할당 한다는 것이다.

Untitled

위처럼 T 메모리가 구성되면 main() 메소드가 실행되며 “Hello OOP!!!” 가 출력된다 단순 print문을 위해 JRE와 JVM은 많은 일을 처리했다.

JRE는 자바 가상 기계인 JVM을 부팅하고, JVM은 메모리 구조를 만들고 java.lang 패키지 로딩, 클래스 로딩, main() 메소드 스택 프레임 배치, 변수 공간 배치 등의 일을 처리했다.

메소드의 끝을 나타내는 닫 는 중괄호를 만나면 해당 메소드의 스택 프레임이 소멸된다. 프로그램의 시작와 끝인 main() 메소드가 끝나면 JRE는 JVM을 종료하고 JRE 자체도 운영 체제 상의 메모리에서 사라진다. (main() 메서드는 프로그램의 시작점이자 끝이기 때문)