java和C++的编译器对比
也是java的即时编译器和C++的静态编译器之间的对比。
1、即时编译器的运行占用的是用户程序的运行时间,具有很大的时间压力
2、java的动态类型安全语言需要虚拟机确保程序不会违反语言语义或访问非结构化内存。也就是需要编译器不断进行类型检查,消耗时间。
3、运行时多态性的特点使得编译器的优化难度大于C++的静态优化编译器。
4、动态可扩展的语言特性使得程序可以在运行时加载新的类,从而可能会改变继承关系,影响全局优化,比如方法内联。
5、java的对象在堆上分配,垃圾回收机制需要筛选可回收对象比C++中程序回收分配内存的操作耗时多。
上述java语言相对于C++语言的劣势,是为了换取java语言的开发效率而付出的代价。