인생은 오차 범위 줄이기

처음은 누구나 광범위하다

Study, Learn

java 컴파일과 실행단계

Divide 2023. 11. 30. 04:32

java는 컴파일과 실행 단계를 거친다.


Hello.java

// Hello.java
class Hello {
	main() ...    
}

||    자바에서 제공하는 javac 프로그램(컴파일러) 사용 

||    자바 컴파일러로 자바 소스 코드를 바이트코드(byte)로 변환되고,  .java가 .class로 변경

 

Hello.class

||   자바 프로그램 실행

||   컴파일된 바이트 코드는 JVM에서 실행, JVM은 바이트 코드를 해당 운영 체제의 기계어로 변환하고 실행

자바 가상 머신(JVM)안에서 'Hello.class'로 컴파일된 프로그램이 실행 


컴파일 단계 (Compile Phase)

1. Hello.java와 같이 자바 소스 코드를 개발자가 작성한다.

- 자바 소스 코드는 일반적으로 .java 확장자를 가진 파일로 작성된다

 

2. 자바 컴파일러를 사용해서 소스 코드를 컴파일한다.

-  자바가 제공하는 javac 라는 프로그램 사용

- .java  를 .class 파일로 바꿔준다.

- 자바 소스 코드를 바이트코드(bytecode)로 변환하고, 자바 가상 머신에서 더 빠르게 실행될 수 있게 최적화하고 문법 오류도 검출해낸다.

 

<컴파일 단계 요약>

  • Java 소스 코드는 일반적으로 .java 확장자를 가진 파일로 작성된다.
  • 소스 코드는 Java 컴파일러를 사용하여 바이트 코드(Bytecode)로 변환된다.
  • 이 바이트 코드는 기계어가 아니라 Java 가상 머신 (JVM)에서 실행할 수 있는 중간 언어이다.
  • 컴파일 단계에서는 .class 확장자를 가진 바이트 코드 파일이 생성된다.

행 단계 (Execution Phase)

3. 자바 프로그램을 실행한다.

- 자바가 제공하는 javac 라는 프로그램을 사용한다.

- 자바 가상 머신 (JVM)이 실행되면서 프로그램이 작동한다.

 

<실행 단계 요약>

  • 컴파일된 바이트 코드(bytecode)는 JVM에서 실행된다.
  • JVM은 특정 플랫폼에 맞게 설계된 가상 머신이며, Java 프로그램을 실행하는 역할을 한다.
  • JVM은 바이트 코드를 해당 운영 체제의 기계어로 변환하고 실행한다.
  • 이러한 방식으로 Java 프로그램은 특정 플랫폼에 종속되지 않고 다양한 환경에서 실행될 수 있다.

<마무리>

  • 이러한 구조는 Java의 "Write Once, Run Anywhere" (한 번 작성하면 어디서든 실행 가능) 원칙을 실현하도록 도와준다.
  • 개발자는 Java 코드를 한 번 작성하면 이를 컴파일하여 생성된 바이트 코드를 어떠한 플랫폼에서든 실행 가능한 JVM 상에서 실행할 수 있다.

 

'Study, Learn' 카테고리의 다른 글

leetcode 125 Valid Palindrome  (0) 2023.11.01
git  (0) 2023.09.01
형 변환 (type conversion)  (0) 2023.07.06
Python 숫자형, 문자열 자료형  (0) 2023.04.04
Data type  (0) 2023.02.07