$ java com.eomcs.oop.ex03.Exam0130
1) 클래스 파일 'Exam0130.class'을 찾는다.
JDK가 설치된 폴더의 하위 폴더인 /lib에서 찾는다.
OS의 CLASSPATH 환경 변수에 설정된 디렉토리를 탐색하여 찾는다.
JVM을 실행할 때 -classpath 또는 -cp 옵션으로 설정된 디렉토리를 탐색하여 찾는다.
JVM을 실행하는 현재 폴더에서 찾는다.
그래도 없으면 오류를 띄운다.
2) 바이트코드 검증(Verify)
클래스의 바이트코드 유효성을 검사한다.
3) Exam0130.class를 "Method Area 영역"에 로딩한다.
즉 클래스를 외부 저장소(HDD)에서 내부 저장소(RAM)로 로딩한다.
bytecode를 분석하여 코드(생성자, 메서드)와 상수를 따로 보관한다.
4) 스태틱 필드 및 메서드 테이블 준비(Prepare)
Method Area 에 스태틱 필드 생성한다.
클래스 내부에서 사용하는 이름(변수명, 메서드명, 클래스명 등) 목록을 준비한다.
5) 참조하는 외부 클래스나 인터페이스 검사(Resolve)
다른 클래스나 인터페이스를 참조하는 것이 유효한지 검사한다.
6) 클래스 초기화시키기
변수 초기화 문장(variable initializers), 스태틱 블록(static initializers)을 실행한다.
7) main() 메서드를 호출한다.
클래스를 실행하는 것이라면 main() 메서드를 찾아 실행한다.
1) Heap