public class Start {
public static void main(String[] args) {
System.out.println("Hello World! ");
}
}
1. 스태틱 영역의 역할
- 스태틱 영역
- 프로그램의 실행 동안 변경되지 않고 유지되는 영역
- 클래스의 메타데이터
- 스태틱 변수
- 스태틱 메서드 등이 로드됨
- 프로그램의 실행 동안 변경되지 않고 유지되는 영역
2. Main 메서드 실행 방식
- 전처리 과정
- 초기 메모리 공간
- JVM 이 java.lang 패키지를 스태틱 영역에 배치함.
- 임포트 패키지와 모든 클래스 메타데이터를 스태틱 영역에 배치
- main 문 실행시
- main 메서드를 위한 스택 프레임이 스택 영역에 할당
- 클래스 정의를 시작하는 여는 중괄호를 제외하고, 중괄호를 만날 때마다 스택 프레임이 하나 씩 생기게 된다.
- main 메서드 인자 args 를 저장할 변수 공간을 main 메서드의 스택 프레임의 가장 아래에 할당한다.
- main 메서드를 위한 스택 프레임이 스택 영역에 할당
- 코드의 실행
sop ("Hello ~ ) 수행
- 별도 코드 실행 영역이 따로 존재한다.
- T 메모리상에서는 이러한 단순 코드의 실행은 고려하지 않는다.
- 스택 프레임의 소멸
- main 메서드의 닫는 중괄호를 만나게 된다면 스택 프레임이 소멸한다.
- main 메서드의 종료
- main 메서드가 종료되면 JRE 는 JVM을 종료하고
- JRE 자체도 OS 메모리에서 소멸
Uploaded by N2T
'자바 > 스프링입문객체지향' 카테고리의 다른 글
블록 구문과 메모리 : 블록 스택 프레임 (0) | 2023.08.17 |
---|---|
변수와 메모리 (0) | 2023.08.17 |
자바에 존재 하는 절차적 구조적/프로그래밍의 유산 (0) | 2023.08.17 |
자바 프로그램의 개발과 구동 (0) | 2023.08.17 |
번외. 스프링프레임워크 (0) | 2023.08.17 |