2012-08-16 2 views
2

java -jar JAR_FILE.jar을 호출 할 때 JVM이 작업을 끝내고 반환 할 때까지 정확히 무엇이 일어나는지 단계별로 설명해야합니다.JVM 수명주기?

JVM을 호스트 시스템에서 실행할 준비가 된 단계는 무엇입니까?
어떤 기능이 호출됩니까? 어떤 스레드가 생성됩니까?
JVM을 종료 할 때 어떻게됩니까?

+0

자바 언어 사양의 문서가 될 수있는 좋은 출발점 ... – marathon

+0

@ marathon-보다 더 많은 읽을 수 뭔가 자바 가상 머신 2 판 내부의이 책을보고 할 수 있습니다 필자는 Java 사양을 보았지만 더 명확한 사양이 필요합니다! 그것은 세부 사항에 깊이 들어간다. – Reza

+0

이 책은 https://blogs.oracle.com/theaquarium/entry/java_performance_the_java_series에서 볼 수 있습니다. 3 장에서는 JVM 내부에 대해 설명합니다. –

답변

1

여기 내 단계 목록은 매우 높은 수준입니다.

  1. JVM 부팅 및 그것은 또한 설치 일부 시스템 스레드가
  2. 를로드 할 수있는 주요 방법이있는 클래스를 결정하기 위해 매니페스트 jar 파일을 봐 것, GC가 관리 될 다양한 메모리 영역을 설정
  3. 메인 클래스를로드하고 방금로드 된 클래스의 바이트 코드가 정확하고 불법적 인 작업을하지 않는지 확인하십시오.
  4. 로드 할 클래스에 필요한 클래스를 확인하고로드되는 각 클래스가로드되는 각 클래스를로드합니다. 3 및 4 단계
  5. main 메소드의 바이트 코드를 찾아 실행하십시오.

이것은 매우 단순한 목록으로 전체 세부 정보는 훨씬 구체적이며 JVM 구현에 따라 달라질 수 있습니다.

당신은 JVM 스펙 http://www.artima.com/insidejvm/ed2/

+0

고마워! 하지만 1 단계에 대한 자세한 내용이 필요합니다 :) – Reza