일반적인 프로그램

Windows, Linux와 같은 운영체제에서 실행
응용프로그램과 하드웨어 사이에서 중재의 역할을 담고 있는 운영체제(OS)가 프로그램을 실행시키는 구조
Linux와 Windows에 있는 시스템 호출 함수는 서로 다르다.
즉, 개발자는 운영체제마다 다른 소스코드를 구현해야한다는 단점이 존재한다.
시스템 호출 함수 링크
System Calls in Unix and Windows
Explore the concept of system calls in Unix and Windows, understanding their roles and differences in operating systems.
www.tutorialspoint.com
Java 프로그램

운영체제(OS)와 Java 프로그램 사이에, JVM(자바 가상 머신)이 존재한다.
JVM

운영체제(OS)별로 존재하는 차이점(소스코드가 다른 점)을 가상머신이 중간에서 해결해줘서 소스코드가 동일한 Java 프로그램은 운영체제에 관계없이 실행된다.(운영체제에 독립적)
단, JVM(자바 가상 머신)는 개발자가 설정해야한다.
프로그램 실행 순서
소스파일(.java) => 바이트코드(.class) => 자바 프로그램 실행
Java 컴파일러
소스파일(.java)에 저장된 소스코드를 JVM이 이해할 수 있는 "바이트 코드(.class)"로 변환하는 프로그램
JDK경로/bin/javac.exe가 java 컴파일러다.

Java Launcher
JVM을 구동하고 컴파일된 바이트코드를 실행하도록 돕는 프로그램

바이트 코드
javac(java 컴파일러)에 의해 생기는 코드
javac에 의해 생성되는 명령어가 기본적으로 1바이트 단위이기 때문에, 바이트 코드라고 붙여지게 되었다.
'Development > Java' 카테고리의 다른 글
| [Java] 추상 클래스와 인터페이스 (0) | 2025.09.03 |
|---|---|
| [Java] equals(), == 연산 null 비교 (0) | 2025.06.20 |
| [Java] ==와 equals()의 차이 (2) | 2025.06.16 |
| [Java] String compareTo() 메서드 (2) | 2025.06.15 |
| [Java] String substring method (3) | 2025.03.19 |