Notice
Recent Posts
Recent Comments
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
10-10 22:21
Archives
Today
Total
관리 메뉴

Developer_Neo

[자바/Java] 자바 프로그램과 실행의 원리에 대한 이해 본문

프로그래밍/Java

[자바/Java] 자바 프로그램과 실행의 원리에 대한 이해

_Neo_ 2021. 9. 3. 13:24
반응형

윤성우 열혈 자바

그림에서 왼쪽은 일반적인 프로그램의 실행구조를 나타낸다

- 하드웨어 위에 운영체제가 동작을 해야 프로그램을 사용할 수 있는 상태가 된다. 운영체제가 프로그램을 실행 시켜주는 구조이다.

 

그림에서 오른쪽은 자바프로그램의 실행구조이다.

- 일반적인 프로그램의 실행구조인 운영체제까지는 똑같지만 프로그램이 실행되기 위해서는 자바 가상머신(JVM)이 실행되야한다. 운영체제 입장에서는 가상머신을 실행시켜준다 그런데 운영체제는 가상머신의 존재는 알지만 가상머신 위의 프로그램 존재를 모르기도 하고 관심도 없다.  자바프로그램은 자바 가상머신에 종속이 돼서 실행되는 구조이다.

왜 이렇게 구조했는가에 대한 질문은 운영체제에 상관없이 자바 프로그램을 실행시키기 위함이다 

+ 자바 가상머신(JVM)은 운영체제 위에서 동작하는 일종의 소프트웨어이다.

 

윤성우 열혈 자바

위의 그림을 보면 운영체제에 따른 자바 가상머신의 차이를 알 수 있다. (Windows, Linux)

- 자바는 한 번 작성하면 리눅스나 윈도우에 상관없이 어디서든 동작시킬수 있다.  (프로그램은 운영체제에 의존적이다. 자바는 가상머신을 이용하기 때문에 운영체제에 따른 적절한 가상머신의 설치를 하면 어디서든 동작시킬수 있다는 것이다) 하지만 다른 언어인 C는 불가하다

 


컴파일러란 

- 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 언어 번역 프로그램을 말한다

 

자바 컴파일러의 역할

- 자바 코드를 자바 가상머신이 이해할 수 있는 코드를 생성해낸다. 

 

자바런처가 불리는 Java.exe는 자바가상머신을 구동하고 자바프로그램이 실행되도록 돕는 프로그램이다.

Javac.exe는 자바 컴파일러로 소스파일에 저장된 소스코드를 자바 가상머신이 이해할 수 있는 자바 바이트코드로 변환하며 확장자가 class인 클래스 파일에 담긴다.

 

그림출처 - 윤성우의 열혈자바프로그래밍 책

 

 

반응형
Comments