728x90
일반적인 프로그램은 운영체제 위에서 실행이 된다.
구조를 설명하자면 [Hardware - Operating System - Program]이 된다.
이처럼 하드웨어를 기반으로 운영체제가 동작하고, 그 위에서 프로그램이 실행이 된다.
그러나 자바 프로그램은 다르다.
자바 프로그램의 구조는 [Hardware - Operating System - Java Virtual Machine - Java Program]이다.
운영체제와 자바 프로그램 사이에 가상 머신이 존재한다.
가상머신이란 운영체제 위에서 동작하는 일종의 소프트웨어 프로그램이다.
이 가상머신 위에서 프로그램이 실행되기 때문에 운영체제와 상관없이 실행시킬 수 있다.
다른 운영체에에 대해 다른 JVM이 있기 때문에 동일한 Java 프로그램을 실행할 수 있다.
자바 컴파일러는 자바 가상머신이 이해할 수 있는 코드를 생성해 낸다.
xxx.java파일을 소스파일이라 하고 소스파일에 저장된 프로그램 코드를 소스코드라고 한다.
자바 컴파일러는 소스코드를 JVM이 이해할 수 있는 '자바 바이트코드'로 변환해주는 프로그램이다.
javac.exe가 자바 컴파일러다.
java.exe는 자바 런처라고 한다. 가상머신을 구동시키고 그 위에 자바 프로그램이 실행되도록 돕는다.
xxx.java가 javac.exe에 의해 컴파일 되면 xxx.class파일이 생기고 이 파일이 java.exe에 의해 JVM에서 실행이 된다.
728x90
'프로그래밍 > Java' 카테고리의 다른 글
[Java] 자바 가상머신의 메모리 모델 (0) | 2020.05.20 |
---|---|
[Java] 클래스 변수와 클래스 메소드 (Static) (0) | 2020.05.19 |
[Java] 쓰레드(Thread) (0) | 2020.02.12 |
[Java] 입출력 스트림 (0) | 2020.02.10 |
[Java] 예외(Exception) (0) | 2020.02.08 |