반응형
+-----------------------------------------------------+
| Java Source Code |
+-----------------------------------------------------+
↓
+-----------------------------------------------------+
| Java 컴파일러 (javac) |
+-----------------------------------------------------+
↓
+-----------------------------------------------------+
| 바이트코드 (.class 파일) |
+-----------------------------------------------------+
↓
+-----------------------------------------------------+
| Java 가상 머신 (JVM) |
+-----------------------------------------------------+
↓
+-----------------------------------------------------+
| 운영체제 및 하드웨어 (컴퓨터) |
+-----------------------------------------------------+
java는 모든 컴퓨터에서 돌아가기 위해 위에 표와 같은 순서를 가지고 실행된다.
각각의 요소들에 대한 설명을 적어보겠습니다!
- Java Source Code: Java 프로그램은 일반적으로 Java 프로그래밍 언어로 작성되며, 이 소스 코드는 Java 소스 파일로 저장되며 .java 확장자 파일을 말한다.
- Java 컴파일러 (javac): Java 소스 코드를 컴파일하는 단계에서 javac 컴파일러가 사용된다. 이때 컴파일러는 Java 소스 코드를 바이트코드로 번역하고 .class 확장자를 가진 바이트코드 파일을 생성한다.
- 바이트코드 (.class 파일): 컴파일러에 의해 생성된 바이트코드는 .class 확장자를 가지며, 이것은 Java 프로그램의 중간 형식이다.바이트코드는 Java 가상 머신 (JVM)에서 실행되기 위한 형태이다.
- Java 가상 머신 (JVM): JVM은 Java 바이트코드를 실행하는 역할을 하며, JVM은 Java 프로그램의 실행 환경이며, 특정 운영체제 및 하드웨어에서 독립적으로 운영된다. 그렇기에 모든 컴퓨터에서 작동할 수 있다.
- 운영체제 및 하드웨어 (컴퓨터): JVM은 운영체제와 하드웨어 위에서 실행되며, JVM은 Java 프로그램이 운영체제와 하드웨어와 상호 작용하도록 중계하는 역할을 한다. 이것은 Java 프로그램이 다양한 운영체제 및 하드웨어 환경에서 실행될 수 있도록 해준다.
반응형
'코딩 > JAVA' 카테고리의 다른 글
"Java에서 '=='와 'equals' 메소드 비교의 차이" (0) | 2023.10.18 |
---|---|
[JAVA] 비정적(non-static) 멤버 변수와 정적(static) 멤버 변수의 차이와 RAM(메모리) 배치 (0) | 2023.10.17 |
[JAVA] this의 역할 (0) | 2023.10.17 |
[JAVA] protected와 private static의 차이 & 개념 (0) | 2023.10.17 |
Spring 공부하기 전 알아야하는 JAVA 기초 개념 (6탄) - 스레드(Thread) (4) | 2023.08.06 |