본문 바로가기

Language/Java

자바의 동작 원리

자바 소스(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 로 변환해주는 소프트웨어로 프로그래밍 언어로 작성된 프로그램을 기계어로 변환하는 소프트웨어를 말한다.

 

자바 컴파일러의 특징

  1. .java 파일에 오류가 있는지 검사한다.
  2. 특정 컴퓨터를 위한 코드를 바로 생성하지 않고 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

https://droptable.tistory.com/42

'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