晚期(运行期)优化——Java与C/C++编译器比较

晚期(运行期)优化——Java与C/C++编译器比较

文章目录


单从编译和执行上讲为什么说C/C++编译器比Java编译器快?

  1. 因为Java中的即时编译器是要占用用户程序的运行时间的。
  2. Java是一门类型安全的语言,会进行很多的检查行为。如数组是否越界、检查空指针等
  3. 虽然java中没有virtual关键子,但进行多态选择的频率远远大于C/C++。
  4. java是一门动态扩展的语言,运行是加载新的的类会改变程序类型的继承结构,所以一些激进优化不得不注意撤销
  5. Java的内存是在堆上分配的,而C/C++有多种内存分配方式。另外,C/C++的内存回收主要是用户程序代码实现的,Java虚拟机的内存收集机制自然赶不上。

不过,虽然这方面java慢了,但是它换取了开发效率啊!所以从总体上(整个项目开发),java与C++谁快谁慢还不一定哦!