wiki:java:java-lecture:1week
문서의 이전 판입니다!
JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가.
JVM 이란 무엇인가
기술적 정의 : 코드를 실행하고 해당 코드에 대해 런타임 환경을 제공하는 소프트웨어 프로그램에 대한 사양( Specification )이다.
일반적 정의 : 자바 프로그램을 실행하는 방법. JVM의 설정을 구성하고, 설정사항에 따라 실행 중에 프로그램 리소스를 관리한다.
컴파일 하는 방법
실행하는 방법
바이트코드란 무엇인가
JVM이 이해할 수 있는 언어로 변환된 자바 소스 코드를 의미
자바 컴파일러에 의해 변환되는 코드의 명령어 크기가 1바이트라서 자바 바이트 코드라고 불리고 있습니다.
자바 바이트 코드의 확장자는 .class이다.
자바 바이트 코드는 자바 가상 머신만 설치되어 있으면, 어떤 운영체제에서도 실행될 수 있다.
JIT 컴파일러란 무엇이며 어떻게 동작하는지
JIT ( Just In Time ) 컴파일러는 바이트코드를 기계어로 변환하여 실행
인터프리터의 단점을 보완하는 역할, 반복되는 코드가 있다면 어느 시점에 전체 바이트 코드를 컴파일해 네이티브 코드로 변환한다.
이 네이티브 코드는 반복되는 메소드 호출에 사용되어 시스템 성능을 향상시킨다.
JVM 구성 요소
JVM의 3가지 주요 구성 요소
클래스 로더 ( Class Loader )
런타임 데이터 에어리어 ( 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.1609763438.txt.gz · 마지막으로 수정됨: 2022/03/10 19:52 (바깥 편집)