[Java] JVM, JRE, JDK
·
Java
JVM Java Virtual Machine (자바 가상 머신) JVM은 자바 바이트코드를 실행할 수 있는 주체이다. Java로 작성된 프로그램은 운영체제에 맞는 실행 파일로 컴파일되는 것이 아닌 .class 라는 확장자를 가진 파일(자바 바이트코드)로 변환된다. 변환된 자바 바이트코드는 JVM 위에서 작동이 된다. 이때, 미리 설치된 JVM 은 운영체제 별로 동일하게 작동하도록 .class 파일에게 환경을 제공한다. JRE Java SE Runtime Environment (자바 런타임 환경) JRE는 컴파일 된 Java 프로그램(자바 바이트코드, class 파일)을 실행하는데 필요한 패키지이다. JRE는 JVM을 포함하고 있다. JVM은 우리가 작성한 코드를 기반으로 한 .class 확장자를 가진 클..
[Java] JIT 컴파일러란?
·
Java
JIT 컴파일(just-in-time compilation) 또는 동적 번역(dynamic translation)은 프로그램을 실제 실행하는 시점에 기계어로 번역하는 컴파일 기법이다. 컴파일러 vs 인터프리터 컴파일러와 인터프리터 모두 high-level language를 machine language로 번역한다. 컴파일러는 소스 코드(high-level language로 작성) 전체를 링커 등을 통해 한번에 번역하여 목적 파일(기계어로 작성)로 만들어 메모리상에 적재한다. 인터프리터는 소스 코드를 한 행씩 중간 코드로 번역 후 실행한다. 컴파일러는 소스코드 전체를 컴퓨터 프로세서가 실행할 수 있도록 바로 기계어로 변환한다. 인터프리터는 고레벨 언어를 중간 코드(intermediate code)로 변환하..
[Java] JVM이란?
·
Java
Java Virtual Machine의 줄임말. JVM은 ‘자바를 실행하기 위한 가상 기계(컴퓨터)’이다. JVM은 2가지 기본 기능이 있다. 자바 프로그램이 어느 기기, 어느 운영체제 상에서도 실행될 수 있게 만들어 준다. -> WORA 자바 프로그램의 메모리를 효율적으로 관리 & 최적화해 준다. 💡 WORA WORA = Write Once, Run Anywhere ‘한 번 쓰고 모든 곳에서 실행한다’라는 뜻으로, 자바의 개발 철학이다. 자바는 WORA를 구현하기 위해 물리적인 머신과 별개의 가상 머신을 기반으로 동작하도록 설계되었다. 그래서 자바 바이트코드를 실행하고자 하는 모든 하드웨어에 JVM을 동작시킴으로써 자바 실행 코드를 변경하지 않고도 모든 종류의 하드웨어에서 동작되게 한 것이다. Java..