Java 소스 코드를 JVM이 이해할 수 있는 Java Bytecode로 변환한다.
Java 설치 시 javac.exe라는 실행 파일 형태로 설치된다.
소스 코드가 JVM이 이해할 수 있는 언어로 변환된 형태를 말한다. 자바 컴파일러에 의해 변환되는 코드의 용량이 1 Byte라서 다음과 같이 명명되었다.
확장자는 .class이며, JVM만 설치되어 있으면, 어느 OS에서도 실행된다.
Java Bytecode를 실행하기 위한 가상의 기계다. Java 프로그램을 실행하기 위해서는 반드시 필요하다.
어떤 OS라도 JVM만 있으면, 추가 조치 없이 Java 프로그램을 실행할 수 있다.
그러나, Java 프로그램과는 달리 JVM은 OS에 종속적이어서, 각 OS에 맞는 JVM이 필요하다. 또한 Java는 다른 언어와 달리 JVM이라는 한 단계를 더 거쳐야 하므로, 실행 속도가 느리다.
JVM의 구성요소는 아래와 같다.
Java Bytecode를 읽고 해석하는 역할을 한다.
동적으로 클래스를 로딩해주는 역할을 한다.
Java는 동적으로 클래스를 로딩하므로, 프로그램이 실행 중인 runtime에서야 모든 코드가 JVM과 연결된다.
프로그램이 실행 중인 runtime에 실제 기계어로 변환해주는 컴파일러를 말한다. 프로그램의 실행 속도를 높이기 위해 동적 번역(dynamic translation)이라는 기법을 사용한다.
더 이상 사용하지 않는 메모리를 자동으로 회수한다.
http://tcpschool.com/java/java_intro_basic
http://tcpschool.com/java/java_intro_programming