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 |