深入探索JVM垃圾回收:ARM服务器垃圾回收的挑战和优化
上QQ阅读APP看书,第一时间看更新

1.1.1 编译执行

编译执行最典型的代表是C/C++语言。C/C++源代码首先由编译器进行编译,不同系统/平台的编译器不同,编译器根据代码执行的目标平台产生目标机器文件。

链接器对目标机器文件进行链接,链接包括动态链接和静态链接。链接后形成可执行文件,不同系统有不同的可执行文件格式,如在Windows中使用PE(Portable Executable)格式、在Linux中使用ELF(Executable and Linkable Format)等格式。

执行可执行文件,如在Windows中双击EXE文件(文件格式为PE格式),操作系统会创建新的进程/线程执行代码。程序的执行过程涉及程序的加载、链接、执行等工作。

C/C++程序执行流程如图1-1所示。

图1-1 编译执行流程