在什么情况下Java比C++快

发布网友 发布时间:2022-04-22 08:29

我来回答

4个回答

热心网友 时间:2022-06-18 15:55

在当前,基本上C++应用程序在实际效率上都要比JAVA高,这是由它们不同的运行模式决定的。当然,前提是编写的程序没有毛病。

**************************************
相关知识:

一、在当前:
1、JAVA的主要运行模式是:
JAVA应用->调用JAVA转译层->系统接口层->机器硬件
2、C++的主要运行模式是:
一般情况下 C++应用->系统接口层->机器硬件
极端情况下 C++应用->直接控制机器硬件(直接地址读写等)

二、它们的优缺点:
1、C++编写的应用
优点:相对效率高,运行响应速度快。
缺点:针对不同的平台的应用一般都不通用。
不光是应用不通用,源码也常常不通用,因为不同的操作系统提供的接口往往不同,直接操作硬件情况下更是不通用,只要硬件更换,应用就不能正常工作。
只有使用最基本的功能的一些原代码可能不经修改且在针对性重译后能在不同平台运行。

2、JAVA编写的应用
优点:跨平台性好,兼容性好。
因为有强大的官方或第三方提供的成熟的中间层,这个中间层将常见的或专门针对性的操作系统的接口、硬件的接口进行转译与规范成最通用的调用方式。所以,JAVA编写的应用可以在多个平台间直接运行,或是无需改动源码重新编译就可以运行。
缺点:因为有了中间层,所以应用中的代码都是中间码,不是真正的机器码,这些在运行过程中需要中间层进行实时转译,这就加大了电脑的工作量,减慢了工作效率。特别是为了兼容性或因为技术资料不是最新的原因,其中一些接口方式用的并不是最高效的方式,更大大的减慢了程序的运行速度。

三、应用针对性
1、在跨平台应用方面,在对实时性,用户界面效率要求不高的情况下JAVA有其不可比的优越性。可以大大的减小编程人员的工作量。比如学生情况管理系统、销售系统等。因为这类程序,除了数据库查询花的时间外,多数情况下都是电脑在等人脑。
2、但在对用户界面效率要求高的应用中,比如3D动画游戏、图像实时解码、动态图像处理、弹道实时计算等,用JAVA来编写可能就会使得运行速度就不可容忍甚至无法完成任务。因为这类程序要求电脑不停的刷新画面或进行高速计算。

热心网友 时间:2022-06-18 15:55

这个问题应该没什么实际意义。 单单从性能来说,c相对于java更底层,理论上相同功能,c的最优实现要快。 但现实中明显不这样,写代码的人的技术水平决定到底哪个快。 java 入门相对简单,突出一个开发快,产品迭代快,大部门业务场景对性能的考虑并没有太多。---个人的观点,不一定全面

热心网友 时间:2022-06-18 15:56

同样的编码,同样的计算机平台,没有可能性。

热心网友 时间:2022-06-18 15:56

有一种情况,在b/s结果上

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com