언어 | 소스코드 | 컴파일 단계 | 링킹단계 |
---|---|---|---|
java | .java | .class | |
C | .c | .obj | .exe |
C++ | .cpp | .obj | .exe |
- 자바의 목적
- 플랫폼 독입적 언어
API: 함수를 다운로드 받지 않아도 운영체제가 기본 제공하는 함수 목록
- API는 광범위하게 사용되고 있음. 플랫폼 성격을 갖고 APP이 쓸 수 있도록 만들어진 함수 set (작업량을 줄어줌)
라이브러리: 특정한 역할을 하는 함수들의 모임, 자주 사용되는 함수가 이미 만들어져 있는 것
- .obj 파일로 함수들이 번역되어 있음.
실행 파일의 구조: .obj 파일이 여러개 합쳐진 것
헤더 색션
바이트 코드: 자바 가상 기계에서 실행 가능한 바이너리 코드.
- 바이트 코드는 컴퓨터 CPU에 의해 직접 실행되지 않고 자바 가상 기계가 작동 중인 플랫폼에서 실행됨. (인터프리터 방식)
클래스 파일 (.class)에 저장.
역할 :각기 다른 플랫폼에 설치 되더라도 동일한 자바 실행 환경을 제공
- 자바 응용프로그램을 실행함. 자바 가상 기계가 응용프로그램을 구성하는 클래스 파일의 바이트 코드 실행
자바 가상 기계는 플랫폼에 종속적(플랫폼 마다 각각 작성됨.)
자바 개발사인 오라클, IBM에서 JVM 개발 및 공급
자바 : 컴파일러가 바로 바이트 코드 생성 후 링크 과정이 없음.
- 바이트 코드는 JVM에서만 실행 가능.
- 자바는 필요한 클래스들은 프로그램 실행 중 동적으로 로딩
C/C++
- 컴파일: C/C++에서는 컴파일러가 중간 단계인 목적 코드 생성
-링크:링커가 목적 코드와 라이브러리 연결, 실행 가능한 최종 실행 파일 생성
목적 코드 및 실행 파일은 플랫폼에 따라 다름 : 플랫폼이 바뀌거나 다른 플랫폼에서 실행시키려면 다시 컴파일 및 링크
: 자바 응용 개발 환경. 개발에 필요한 도구(컴파일러, 컴파일된 자바 API 클래스들이 내포된 모듈 파일들, 샘플 등) 포함
:자바 실행 환경, JVM 포함