Posts :coffee: [Java] 클래스 로딩 과정
Post
Cancel

:coffee: [Java] 클래스 로딩 과정

클래스 로딩이란?

외부 저장장치(ex: HDD, USB 메모리, DVD-ROM 등)에 있는 .class 파일을 JVM이 관리하는 메모리로 로딩하는 것을 말한다. 클래스는 클래스의 코드를 사용하는 시점에 메모리(Method Area 영역)에 로딩된다. 스태틱 멤버를 사용할 때, new 명령으로 인스턴스를 생성할 때가 이 시점에 해당된다. 클래스는 한번 로딩되면 프로그램이 종료될 때까지 유지한다.

클래스 로딩 과정

  1. 클래스를 외부 저장소에서 내부 저장소인 RAM으로 로딩한다. 정확하게는 클래스 파일을 JVM의 Method Area에 로딩한다.
  2. 클래스의 바이트코드의 유효성을 검사한다. (Verify)
  3. 스태틱 필드와 메서드 테이블을 준비한다. (Prepare)
  4. 참조하는 외부 클래스나 인터페이스를 검사한다. (Resolve)
    • 다른 클래스나 인터페이스를 참조하는 것이 유효한 지 검사한다.
  5. 클래스를 초기화시킨다.
    • 변수 초기화 문장(variable initializers), 스태틱 블록(static initializers)을 실행한다.
  6. main() 메서드를 호출한다.
    1. main() 메서드에 선언된 로컬 변수를 JVM Stack에 생성한다.
    2. main()의 코드를 실행한다.
This post is licensed under CC BY 4.0 by the author.

학원 #21일차: 생성자와 인스턴스/클래스 메서드의 활용

학원 #22일차: 상속과 다형성

Loading comments from Disqus ...