您好,
我在谷歌搜索了C ++和Java编译过程之间的差异,但返回了C ++和Java语言功能及其差异。
我精通Java,但不熟悉C ++。但我修复了C ++中的一些错误。根据我的经验,我注意到与Java相比,C ++总是花费更多的时间来进行微小的更改。
此致 巴拉
答案 0 :(得分:10)
我想到了一些高层差异。其中一些是概括,应该以“经常......”或“一些编译器......”作为前缀,但为了便于阅读,我将把它留下来。
答案 1 :(得分:8)
Java将代码编译为字节码,由Java VM解释。 C ++必须编译成目标代码,然后编译成机器语言。因此,Java可能只编译单个类进行微小更改,而C ++目标文件必须与其他目标文件重新链接到机器代码可执行文件(或DLL)。这可能会使这个过程花费更长的时间。
答案 2 :(得分:3)
我不确定为什么你期望Java和C ++的编译速度可以比较,因为它们是不同的语言,具有完全不同的设计控制和实现。
这说明要记住的一些具体差异是:
答案 3 :(得分:0)
使用所有语言功能的C ++程序本身就更难编译。一些具有多种类型的模板调用可以轻松地将要生成的代码量增加一倍或三倍。
答案 4 :(得分:0)
对许多细节进行着色,在Java中将.java文件编译为一个或多个.class文件。在C ++中,您将.cc(或其他)源文件编译为.o文件,然后将.o文件链接到一个可执行文件或库中。链接过程通常会导致您死亡,特别是对于较小的更改,因为链接的工作量大致与整个项目的大小成比例。 (这忽略了增量链接器,这些连接器专门设计为对小变化不起作用)
另一个因素是#include机制意味着无论何时更改.h文件,都需要重建所有依赖它的.o文件。在Java中,.class文件可以依赖于多个.java文件(例如:因为内联不变),但是更改一个源文件需要许多其他源文件的这些“热点”往往更少。重修。
另外,如果你正在使用像Eclipse这样的IDE,它会一直在后台构建你的Java代码,所以当你告诉它构建它时,它已经大部分(如果不是完全的话)完成。
答案 5 :(得分:0)
Java将任何源代码编译为字节码,由JVM解释。由于此功能,它可以在多个平台中使用。