Java vs C/C++ 실행환경 및 실행과정 비교
Java | C/C++ |
링크 과정 없이 컴파일러가 바로 바이트 코드 생성 | 컴파일러가 중간 단계인 오브젝트 코드를 생성한 후 링커가 필요한 라이브러리들을 링크하여 최종 실행 가능한 파일 생성 |
바이트 코드는 JVM에서만 실행 가능 | 정적 라이브러리의 경우 라이브러리를 실행 파일에 포함시키므로 실행 파일 크기가 커짐 |
RunTime에 필요한 클래스들이 JVM에 의해 링크되며 클래스 로더가 동적으로 필요한 클래스를 로딩 | 동적 라이브러리의 경우 RunTime에 링크 |
ClassLoader 객체를 이용하여 프로그래머가 직접 클래스 로딩 가능 | 오브젝트 코드 및 실행 파일은 플랫폼에 따라 다르므로 플랫폼이 바뀌면 컴파일 및 링크 새로 해야 함 |