Java(1) - 프로그램의 이해와 실행원리
Java의 변수 클래스 등을 공부하기 전에 Java 프로그램의 실행원리를 알아보도록 하겠습니다.
1. Java 프로그램의 실행 구조와 Java 가상머신
일반적인 프로그램은 Windows 또는 Linux와 같은 OS 위에서 실행이 됩니다.
하드웨어를 기반으로 OS가 동작을하고 OS 위에서 프로그램이 실행되는 구조를 가집니다.
즉 운영체제가 프로그램을 실행시키는 구조를 가집니다.
Java의 경우에는 다른 프로그램의 실행 구조와는 다르게 JVM,
즉 자바 가상머신이 운영체제와 자바 프로그램 사이에 위치해 있습니다.
여기서 JVM(Java Virtual Machine), 자바 가상머신은 운영체제 위에서 동작을 하는 일종의 소프트웨어입니다.
Java 프로그램은 운영체제가 직접 실행하는 구조가 아닌, JVM에 의해 실행되는 구조로 설계된 이유는 Java 프로그램을 운영체제에 상관없이
실행시키 위함입니다. Windows에서 동작하도록 구현된 일반적인 프로그램은 Linux등 다른 운영체제 기반에서는 동작하지않습니다. Linux에
맞게 재구현을 해야하죠.
Java 프로그램을 구현하면 운영체제에 상관없이 프로그램을 동작시킬 수 있는데, 운영체제에 따른 차이점을 JVM이 대신 처리해주기 때문입니다.
서로 다른 운영체제에 맞는 JVM을 설치해준다면. 동일 Java 프로그램을 어떤 OS에서도 실행이 됩니다.
2. Java 컴파일러와 Java 바이트 코드
Java 컴파일러(javac.exe)는 JVM이 이해할 수 있는 코드를 생성해 냅니다.
우리들이 생성하는 Java파일 .java파일을 소스파일이라고 합니다. 해당 파일내에 저장된 프로그램 코드를 소스코드라고 합니다.
따라서 Java 컴파일러는 JVM이 이해할 수 있는 Java 바이트코드로 변환해주는 프로그램입니다.
JVM을 구동시키고 그 위에 Java 프로그램이 실행되도록 돕는 프로그램인 Java 런처(java.exe)라는 프로그램이 있습니다.</br>
즉 Java 소스코드가 Java 컴파일러에 의해 컴파일 되고, 컴파일 된 파일이 java 런처에 의해 가상머신을 기반으로 실행이 되는 관계입니다.
댓글남기기