JAVA는 인터프리터(interpreter) 방식과 컴파일(compile) 방식이 혼합된 언어이다.

Java(자바)의 프로그램 실행 방식

Java 인터프리터는 JAVAC 명령으로 자바 프로그램을 중간 형태인 자바 바이트 코드로 컴파일 하고, 이를 자바 인터프리터가 한 줄씩 해석하여 기계어로 번역한다. 즉, 자바 파일(*.java)을 javac(Java Compiler)로 컴파일하면 바이트 코드로 쓰여진 파일(.class)로 변환한다. 그리고 Java 인터프리터가 바이트 코드로 쓰여진 파일의 코드를 한 줄씩 읽어내려가면서 실행하는 것이다.

image

왜 자바는 컴파일과 인터프리터 방식을 병행하는 것일까?

원래 자바의 JVM에서는 인터프리터 방식만 사용했었다. 인터프리터 방식이란 코드 한 줄씩 기계어로 번역하는 방식이다. 하지만 성능의 문제가 발생했어서 JIT Compiler를 추가해서 성능의 효율을 끌어올렸다. 이로 인해 자바는 컴파일과 인터프리터 방식을 병행해서 사용하게 됐다.

References