public class Start3 {
public static void main(String[] args) {
int i = 10;
int k = 20;
if(i == 10) {
int m = k + 5;
k = m;
} else {
int p = k + 10;
k = p;
}
// k = m + p;
}
}
JRE의 동작:
main()
메서드가 있는지 확인한다.
main()
메서드를 발견한다.main()
메서드의 존재가 확인되면 JVM에 전원을 넣어 부팅한다.JVM의 동작 :
JRE에게 목적 파일을 전달받아 실행한다.
전처리를 한다.
목적 파일 내에 있는 모든 Class와 import package를 스태틱 영역에 배치한다.
main() 메서드의 여는 중괄호 {
를 만나 스택 프레임을 생성한다.
if문에서 여는 중괄호 {
를 만나 스택 프레임이 시작된다.
int m = k + 5;
을 실행한다.
먼저 int m
변수를 if문 스택 프레임에 생성한다.
int m
에 k + 5
의 값을 할당한다.
k = m;
을 실행한다.
if문의 닫는 중괄호 }
를 만나면 if 문의 스택 프레임을 소멸시킨다.
main()
메서드의 닫는 중괄호 }
를 만나서 main()
스택 프레임을 소멸 시킨다.
JRE는 JVM을 종료하고 JRE 자체도 운영체제 상의 메모리에서 사라진다.