Java编译过程、c/c++编译过程区别

1、Java编译过程与c/c++编译过程不同

c/c++编译过程:

当C编译器编译生成一个对象的代码时,该代码是为在某一特定硬件平台运行而生成的。因此在编译过程中,编译程序通过查表将所有对符号的引用转换为特定的内存偏移量,以保证程序运行。

Java编译过程:

Java编译器却不将对变量和方法的引用编译为数值引用,也不确定程序执行过程中的内存布局,而是将些符号引用信息保留在字节码中,由解释器在运行过程中创立内存布局,然后再通过查表来确定一个方法所在的地址,这样就有效地保证了java的可移植性和安全性。

2、区别总结:

1. Java的编译只会生成字节码文件,而不会生成汇编(更不会到机器语言)。Java程序运行时,字节码文件会装载入java虚拟机,虚拟机实时将字节码“翻译”成机器指令来运行。java在不同平台上实现虚拟机,针对虚拟机编译就可以实现代码可移植性。

2. C语言代码编译成的是机器码,通常不能在不同指令系统的机器上运行。c代码的编译一般是直接针对硬件的

发布了90 篇原创文章 · 获赞 171 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/hxl517116279/article/details/105175593