개발/Java Study

1주차 : Java application의 실행 과정

박비버 2021. 1. 27. 00:05

Java application의 실행 과정

자바파일 (.java) -> java compiler -> byte code

 byte code -> JVM -> OS 실행

컴파일 하는 방법

javac HelloWorld.java

 

바이트코드란 무엇인가

JVM 이 이해할 수 있는 언어

자바 코드(.java)를 자바 컴파일러가 바이트 코드(.class)로 만듦

 

실행하는 방법

java HelloWorld

 

JVM이란 무엇인가

JVM (Java Virtual Machine) 자바를 실행하기 위한 가상 기계

자바 프로그램 실행 시에 OS 가 프로그램을 이해할 수 있게 해석해 줌

런타임 시에 하드웨어에 맞게 해석함

자바 프로그램이 다양한 OS 위에서 실행 될 수 있게 해줌 -> 자바 프로그램은 OS 맞추어서 따로 개발할 필요없이 한번만 개발하면 프로그램의 변경없이 JVM 이 지원하는 OS들 에서 실행 가능, OS에 독립적

 

JVM 구성 요소

1. 클래스 로더(class loader) :  런타임에서 데이터 영역에 .class 파일을 로드함

2. 자바 인터프리터(interpreter) : 로드된 클래스를 실행

3. JIT 컴파일러(Just-In-Time compiler) : 네이티브 코드를 캐싱하여 속도 높임

4. 가비지 컬렉터(garbage collector) : 메모리 해제나 폐기를 수행

 

JIT 컴파일러란 무엇이며 어떻게 동작하는지

JIT (Just In Time)

JVM 안에서 바이트코드를 해석 할 때 기존에 실행한 적이 있는 코드는 캐싱함.

이미 실행한 적이 있는 경우에는 캐싱된 데이터를 가져다 씀으로써 인터프리터의 속도를 올려주는 역할.

 

JDK와 JRE의 차이

JDK : 자바 개발 도구 (Java Development Kit) , JRE + 개발에 필요한 실행 파일(javac.exe 등)

JRE : 자바 실행 환경 (Java Runtime Enviornment), JVM + 클래스 라이브러리 (Java API)

 

 

 

 

출처

자바의 정석, 남궁성 지음

medium.com/@ahn428/java-jit-%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%9F%AC-c7d068e29f45

tcpschool.com/java/java_intro_programming