Java프로그램의 실행에서 컴파일 과정은 다음과 같다.
1. 컴파일러 (Compiler)
- java 파일(소스 코드)을 class 파일(바이트 코드)로 변환
2. 자바 가상 기계 (JVM : Java Virtual Machine)
- class 파일을 운영체제에 맞는 기계어로 번역 후 실행
※ C Language vs Java Language
C | Java | |
빌드 결과 | exe 생성 (windows 기준) | class 생성 |
실행 | OS | JVM |
플랫폼 의존 | 종속적 | 독립적 |
C언어는 빌드하면 운영체제가 실행할 수 있는 이진 파일을 생성한다. 반면에 Java는 가상 기계가 실행할 수 있는 class 파일을 생성한다. 때문에 C언어는 운영체제가 변경되면 그에 맞게 빌드를 새로 해야하며 운영체제마다 시스템 라이브러리가 다르기 때문에 소스 코드 변경이 필요할 수도 있다. 프로그램 개발/배포에 있어서 매우 비효율적인 방법이다.
Java는 C언어와 달리 JVM으로 실행할 수 있는 class 파일을 빌드하기 때문에 플랫폼에 독립적인 특징을 가지고 있다.
개발자는 운영체제에 상관없이 빌드하여 배포하면 된다.
하지만 JVM은 플랫폼에 종속적이다. class 파일을 각 운영체제가 이해할 수 있는 기계어로 번역해야 하기 때문이다.
그러므로 반드시 운영체제에 맞는 JVM을 설치해야 한다.
'Language > Java' 카테고리의 다른 글
[Java] Map 모든 데이터 가져오기 (0) | 2022.01.21 |
---|---|
[Java] 자바 정규식 예제 (0) | 2020.12.07 |
[Java] 자주 사용하는 스트링 메소드(String Method) 정리 (0) | 2020.12.07 |