자바 소스(Source)가 프로그램으로서 동작하는 과정은 다음과 같다.
우선 java 파일의 형태로 소스 코드를 작성하면, 컴파일(compile) 과정을 거쳐 JVM(Java Virtual Machine, 자바 가상 머신)이 알아들을 수 있는 class 파일로 변환된다. 이클립스에서는 자바 파일을 저장할 때 컴파일을 하여 class 파일로 저장한다.
↓
다음으로, 이클립스에서 실행 버튼을 누르게 되면 JVM에서 class 파일을 읽어들인다.
↓
마지막으로, JVM은 class 파일을 읽고서 그대로 컴퓨터를 동작시키게 된다.
이때, .java 파일이란 java 규칙에 맞게 작성한 모든 소스코드 파일을 말하며, 특징은 for human 이다. 그렇기에 사람이 읽을 수 있는 text 로 구성되어 있다.
한편, .class 파일이란 컴파일러에 의해 생성된 java bytecode 로 구성된 파일이다. 특징은 for JVM(자바 가상 머신)이다. 그렇기에 자바를 실행할 수 있는 모든 장치에서 실행이 가능하다.
컴파일러(compiler)란 일반적으로 high level language → low level language 로 변환해주는 소프트웨어로 프로그래밍 언어로 작성된 프로그램을 기계어로 변환하는 소프트웨어를 말한다.
자바 컴파일러의 특징
- .java 파일에 오류가 있는지 검사한다.
- 특정 컴퓨터를 위한 코드를 바로 생성하지 않고 JVM을 위한 코드(bytecode)를 생성한다.
자바의 최대 장점은 JVM(Java Virtual Machine)을 통해 플랫폼 독립적으로 실행 가능한 환경을 제공하는 것이다. 그리하여 한 번 작성된 코드로 다양한 환경의 하드웨어 및 OS 어디서든 실행하기 위해 이러한 특징을 지닌 것이다. JVM은 많은 운영체제에서 지원되기 때문에 동일한 바이트 코드 파일로 변경 없이 실행될 수 있다.
JVM이란, Java Virtual Machine의 약어로 자바의 바이트코드를 해당 컴퓨터의 명령어로 해석해주는 프로그램을 말한다. JVM은 바이트코드와 컴퓨터의 운영 시스템 간의 번역기 역할을 한다.
※ JVM은 Main method 가 없을 경우, 실행되지 않는다.
bytecode란 자바의 실행 환경에서 실행되기 위해 최적화된 코드의 집합을 말한다.
[참고문헌]
https://www.boostcourse.org/cs126/lecture/141706?isDesc=false
쉽게 배우는 자바1
부스트코스 무료 강의
www.boostcourse.org
'Language > Java' 카테고리의 다른 글
메소드 (Method) (0) | 2022.11.05 |
---|---|
상속 (Inheritance) (0) | 2022.11.03 |
인스턴스 (0) | 2022.11.03 |
패키지, 클래스, 변수, 메소드 간 관계 (0) | 2022.11.03 |
JVM이란 무엇인가 (1) | 2022.10.13 |