wiki:java:java-lecture:1week
문서의 이전 판입니다!
JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가.
자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기.
JVM 이란 무엇인가
컴파일 하는 방법
실행하는 방법
바이트코드란 무엇인가
JIT 컴파일러란 무엇이며 어떻게 동작하는지
JVM 구성 요소
JVM의 3가지 주요 구성 요소
클래스 로더 ( Class Loader )
JAM 구성의 첫 번째 주요 요소이며,
3 단계
Loading
부트스트랩 클래스 로더(Bootstrap class loader) :
익스텐션 클래스 로더(Extension class loader) :
응용 프로그램 클래스 로더( Application class loader) :
Linking
확인( verify ) 단계 : 클래스 파일이 메모리에 로드될 때 확인 단계로 들어서며, 이 단계에서 표준에 적합한 경우 바이트코드가 확인된다.
준비( prepare ) 단계 : 메모리가 스태틱 변수에 할당되고, 디폴트 값이 할당된다.
해결( resolve ) 단계 : 모든 상징적 참조( symbolic references )가 실제 참조( actual references )로 교체된다.
초기화( Initialization ) : 클래스 로더 요소의 초기화 단계에서, 모든 스태틱 변수들은 실제 값으로 할당되고, 이때 스태틱 이니셜라이저를 실행한다.
런타임 데이터 에어리어 ( Runtime data area ) : 클래스 파일을 저장 및 실행
METHOD AREA
HEAP AREA
STACK MEMORY
PC REGISTER
NATIVE METHOD STACK
JVM 엑씨큐션 엔진 ( JVM Execution Engine ) : 바이트 코드를 기계코드로 변환하고, 명령을 수행하는 실제 엔진이다.
INTERPRETER : 클래스 파일 또는 바이트코드를 읽고, 하나 씩 실횅한다. 인터프리터의 문제는 메서드가 여러 번 호출되면 반복해서 바이트 코드로 인식된다.
JIT COMPILER
GARBAGE COLLECTOR
JAVA NATIVE METHOD INTERFACE
JDK 와 JRE의 차이
JRE | JDK |
Java Runtime Environment | Java Development Kit |
Java 프로그램을 실행하는 Java Virtual Machine( 자바 가상 머신 )을 구현하는 환경 | Java 기반 응용 프로그램을 개발하는데 사용할 수 있는 소프트웨어 번들 |
Java 프로그램을 실행하는데 필요한 플러그인 | Java 프로그램 개발에 필요 |
JRE는 JDK보다 크기가 작기 때문에 더 적은 디스크 공간이 필요 | JDK는 다양한 개발 도구와 JRE를 포함하므로 더 넓은 디스크 공간이 필요 |
JRE는 JVM, 코어 라이브러리, 그리고 Java로 작성된 응용 프로그램과 애플릿을 실행하는 추가구성요소를 포함 | JDK는 JRE, API 클래스 집합, Java 컴파일러, Webstart 및 Java 애플릿과 응용 프로그램을 작성하기 위해 필요한 추가 파일을 포함 |
Ref
/volume1/web/dokuwiki/data/attic/wiki/java/java-lecture/1week.1609760057.txt.gz · 마지막으로 수정됨: 2022/03/10 19:52 (바깥 편집)