-
1주차 과제: JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가.프로그래밍 언어/Java 2021. 1. 14. 13:10
백기선님의 온라인 자바스터디 (https://youtu.be/peEXNN-oob4) 1.JVM이란 무엇인가
JVM(Java Virtual Machine)의 약자로 자바 어플리케이션을 구동시키기 위하여 Java Application와 OS 사이에서 동작.
리눅스나 맥, 윈도우 등 운영체제의 종류에 구애받지 않고 실행될 수 있도록 해주는 스택기반의 가상머신.
스택기반 <-> 레지스터 기반
2.컴파일 하는 방법
컴파일러(javac)를 사용하여 소스파일(.java)을 바이트코드(.class)로 컴파일한다.
아래의 경우 .java의 내부에서 한글을 사용하여 utf-8로 인코딩하는 과정이 추가
명령프롬프트에서 실행한 컴파일러 3.실행하는 방법
명령프롬프트에서 java 실행파일을 입력하면 컴파일러가 소스파일을 바이트코드로 컴파일하고 JVM의 ClassLoader가
이를 불러들여 바이트코드를 검증한 후 Execution Engine에서 인터프리터와 JIT 를 통해 기계어로 컴파일된다.
출처 : https://www.guru99.com/java-virtual-machine-jvm.html 4.바이트코드란 무엇인가
바이트코드(Java bytecode)란 소스파일(.java)을 컴파일러를 통해 변환된 바이트코드(.class)파일로 자바가상머신(JVM)이
해석할 수 있는 반기계어라고 할 수 있다. 우리가 알고 있는 기계어(binary code)와는 차이가 있다.
5.JIT 컴파일러란 무엇이며 어떻게 동작하는지
JIT(Just-In-Time)컴파일이란 JVM의 Execution Engine 내부에 포함되어 interpreter의 부족한 성능을 향상해주는 컴파일러로
반복되어 실행되는 내용은 캐싱하여 초기 컴파일 이후엔 다시 컴파일하지 않는 특징이 있다. 그러나 초기실행시 속도가
다소 느리단 단점이 있다.
6.JVM 구성 요소
https://www.guru99.com/java-virtual-machine-jvm.html - Class Loader : 바이트코드를 읽어들인다.
- Execution Engine : Byte code를 Native code 로 컴파일 하기위해 interpreter와 JIT이 존재
- JVM Memory(Runtime Data Areas) : java를 실행하기위하여 OS로 부터 할당받은 메모리
7.JDK와 JRE의 차이
JRE(Java Runtime Environment)는 Java를 실행하기 위한 런타임환경을 만들어 자바를 실행할 수 있게 한다.
JDK(Java Develope Kit)는 위 설명한 JRE를 포함해, 개발키트(java, javac...)가 포함되어 있는 것이 차이점.
일반 사용자는 JRE만 설치해도 자바를 실행하는데에 문제가 없다.
'프로그래밍 언어 > Java' 카테고리의 다른 글
3주차 과제: 연산자 (0) 2021.01.15 9주차 과제: 예외 처리 (0) 2021.01.14 2주차 과제: 자바 데이터 타입, 변수 그리고 배열 (0) 2021.01.14