现在java的执行速度和c++相比谁快?你怎么看?

网友解答: 理论上一样快,有时候cpp快,有时候java快。我估计有人肯定听了就不乐意了,什么?java一定比cpp快才对,因为java是用虚拟机运行,虚拟机是c/cpp写的,所以可以得

网友解答:

理论上一样快,有时候cpp快,有时候java快。我估计有人肯定听了就不乐意了,什么?java一定比cpp快才对,因为java是用虚拟机运行,虚拟机是c/cpp写的,所以可以得出java一定比cpp慢!然而不是,因为java不是脚本语言。再次重申,java不是脚本语言!而上面提到的思维明显是把java当成脚本语言对待了。这里就有一个很简单的类比,汇编写出的程序会比c语言写出的程序更快么?不会,因为最终都是机器码运行,没区别,只是编译过程不一样罢了。java也一样,最终不是那个jvm用java的语法控制c语言程序再用c语言程序输出结果。java的玩法是先把java文件编译成class文件,类似于一套特殊的机器指令,再经一套自己的硬件规则去操作真硬件,运行出效果。这才是虚拟机的含义,不然人家为什么不叫java解释器?不然你以为编译一遍是为了保密?另外,java能运行在硬件实现上,注意,是真的是直接运行在硬件上而不是什么用硬件集成一套其他语言编写的运行环境再运行。毕竟,能有虚拟机,那就也能有实体机,直接用字节码文件操作硬件。以前有过这种芯片,可惜推出之后没什么市场,最终也就消失在历史中了。

针对下方回复不相信java可以比cpp快的,这里做一个随手就能来一个的例子。用cpp和java创建同样功能的对象,连续创建一百万个。测试环境MacBook pro2016款,jdk1.8.0-131,g++为4.2.1系统自带(据说苹果还优化过),那么结果如何呢?见下方回复,有图有真相。

网友解答:

先划一下重点:本问题是纯粹比较运行速度!

看了一下这些回答,有些人可能因为自己是做java的,见不得自己做的东西差,死都不承认java速度慢。为什么java比cpp慢?大家都说得差不多了我不想再啰嗦。我只想从其他方面反过来证明。

首先,java程序员是中国所有程序员里最多的!说句不好听的话,如果java的运行效率等于或者高于cpp,那么早就不存在cpp这门语言了,因为没有理由用它!cpp的缺点大家都知道,编写效率低(注意是编写效率,不是运行效率!这两者成反比!);复杂难理解;掌握这门语言需要先掌握操作系统;等等。

其次,现在那些追求高性能(也就是高运行效率)的服务器上面跑的程序是用什么语言写的?是c和cpp,没有java写的高性能服务器!java或者c#或者python或者php写的服务器那是玩玩的,你家oa或者erp或者其他mis可以用这些语言写,但此类系统软件追求的正是编写效率高!追求性能的服务器指的是科学计算类、游戏服务端类等等。

第三,某楼层回答说java编写出来的程序最终跟汇编写的程序一样,都是生成了机器码运行。我想问问层主,你懂汇编吗?会使用汇编写代码吗?最终生成的机器码是一样的吗?!你确定java生成的机器码不包含有罗里吧嗦一大堆没用的东西,而只有极少的部分是用于做正确的事情?!

我举个例子,同样是上山,比如我用汇编写实现是一条天梯从山底直通山顶,而用java实现是山路十八弯。机器码在同一台电脑运行速度一样所以这里人走路的速度一样(注意,任何语言包括解释型语言,其最终都是依靠机器码才能运行。机器码的运行速度一样是说明硬件速度固定,而不是java运行速度跟汇编一样!),你说是我走天梯直通上方先到山顶,还是走山路十八弯盘上去快?答案显而易见吧?!我建议该楼主好好看看我的回答,多学习多理解,避免扯淡误导跟您一样无知的萌新!

标签: