为什么都说java比c/c++慢

如题所述

  这其实是一种固定的印象!

  先看C++:由源文件直接编译链接成可执行文件,程序直接与底层操作系统打交道,可以充分、自由的利用底层特性,提升系统性能。
  再看Java:源文件编译链接形成的是字节码文件,在Java虚拟机(JVM)上运行,通过JVM去与底层操作系统交互,这就限制了程序的性能极限。

  上面只是说的其实是极限性能,程序的性能好坏主要还是取决于程序员的水平。对于一般开发人员来说,用Java开发的程序跟用C++开发的程序性能基本没有差别。这种极限性能差别更多体现在高手追求性能的时候。

  而C++的“充分、自由的利用底层特性”优势,造成了程序只能在有他所使用的相关平台上使用,也就是可移植性差。
  Java虽然追求不了极致的性能,但在各种平台上,只要安装了同样标准的虚拟机,就可以“一次编译,随处运行”(必须指出目前这还只是理想)。
  选择牺牲极致的性能去实现更广泛的通用性,这就使得Java在开发软件产品时更具优势,而且目前JVM的优化已经做的很不错了,对于企业平台完全足够。

  其实目前大型软件系统已经很少用C++开发了,更多的是Java和.NET,因为这类软件体现不了C++的优势。
  对于追求性能、或者是底层细节控制的场景,如工业控制,底层驱动,Java就完全不适用了。

  这种牺牲值不值得,见仁见智。
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-09-11
C++的代码是直接编译成CPU能够执行的指令;而java首先得编译成跨平台的字节码文件,运行的时候由虚拟机翻译成本机CPU可以执行的指令。像java这种类型的语言,它们最初的设计目标都不是为了追求速度,所以C++编写的代码执行速度是比Java语言编写的快。

有些工具可以把java语言或者C#语言写的代码预编译成本机代码(CPU可以直接执行),这的确可以加快执行速度,但是并不一定能达到C++那种程度。 因为Java、C#这类语言包含了很多语法糖,使用这些语法糖写代码很容易,但是需要付出一定的时空开销;C++语言的所有语言特征都力图减少开销,并且如果你不使用这些语言特征,你不用承担任何开销。本回答被提问者采纳
第2个回答  2018-08-01
因为java语言为了跨平台将java编译出来的class运行在JVM里
比c/c++多了层包装,只是相对而言是比较慢本回答被网友采纳
第3个回答  2016-09-11
java是解析执行。说白了java也会有exe文件。然后每次都要去解析java的代码将代码转换为何c语言一样的机器代码。
c语言就是编译链接时就是机器代码。所以java慢一点。
大致是这么个意思

Java为什么永远比C,C++慢?
\\x0d\\x0a不过任何事情都是有两面性,java可能比c、c++慢,但是这个平台为我们屏蔽了很多机器和操作系统的差异性,我们编写java代码基本不用太多考虑机器和操作系统本身的东西。并且有很好的可移植性。比如你在Windows下写的java代码,基本上只需要做很少的修改就可以在Linux下运行了。\\x0d\\x0a最后说...

java为什么没有c\/c++运行速度快
1、Java不一定效率就比C++低。一般情况下,Java的效率和C++处于一个数量级,少数情况下Java会比C++更快。2、现在根本没有所谓的解释性语言和编译性语言之分。Java一样能通过jaotc,gcj或者Excelsior Jet之类的编译器编译成机器码,C++一样能够通过解释器解释执行 3、Java虚拟机的主流实现Hotspot里自带一个...

c++和java相比较c++难吗?
c++和java相比较c++难。对于有C++背景的人来说,学习Java可能会相对容易一些;而对于有Java背景的人来说,学习C可能会相对容易一些。另外,难度还取决于学习的深度和应用的领域。一般来说,C++相对于Java更加底层和复杂,因此有些人可能认为C++更难。然而,Java有自己的一些复杂概念和特性,因此也有人认为...

c++教程和java哪个好学?
C语言和JAVA,哪个更难学?1、但是相比较起来java是比较容易学的,因为java是基于API去编程的,意思就是说我们想要实现某些功能自己不需要去实现,只需要调用别人写好的API实现就好了。因此,从难易程度上来看C语言比java更加的难。2、当然是c语言更加难学。因为c语言更偏向于底层。而java学习起来更加轻松...

Java为什么比C++慢?以及如何提高Java效率
java为啥慢? 1、java的分配内存java只把内嵌类型分配到堆栈上面,所有Object类型都分配到堆上面。c++可以把局部变量都分配到堆栈上面。显然,根据已有测试结果,访问堆栈的速度要远高于堆的速度。 启示1:c++不要返回structure,可以用引用先传入返回对象;启示2:java对象不要随便抛弃,尽量延长其生命周期;...

java和c++效率差异?
为什么说Java比C\/C++慢?1.C++是编译型语言,java是解释型语言,普遍来讲,编译型语言要比解释型语言速度快。2.C++是在C语言的基础上增加了新的语法和面向对象的机制,更加接近C语言,也就意味着更加接近底层硬件,越接近于硬件,运行速度越快。3.java是纯面向对象的语言,实现了大量类的封装,体系...

java和c哪个效率高(java和c差别大吗)
2、这两种语言都是当今热门语言,但是从应用场景和就业前景来看,Java语言具有一定的优势,对于新手来说学习起来会更简单。从学习难度来看,Java语言要比C语言简单一些。3、所以从语言的叫来看它不会被淘汰,但是能提供的岗位会偏少数,所以好多人C++程序员换工作不太好找,所以建议选择Java吧,有C++的...

java和c++的效率(java和c++哪个厉害)
1,运行速度较C慢,程序越大越明显 2,难与底层操作系统和硬件打交道,用C可以轻而易举获取操作系统硬件信息,java则不能。Java和c++编写的程序那个的效率要高一些Java的编写效率一般高一点,Java提供的功能多一点,所以相对来说写的代码可以少一点;C++的运行效率要高于Java,实现同样的功能,C++的...

c\/ c++与java哪个更难?
c语言更容易。C++组报名量很大,占了一大多半,但发奖是按比例来的,所以c++选手拿省一相对来说是有难度的,国赛也是。Java组就很有优势了,只要你学的好,算法也精通,省一问题不大,压力更小。省赛每个组别设置一、二、三等奖,比例分别为10%、20%、30%,总比例为实际参赛人数的60%,零分卷...

java和c++性能对比(java和c++效率差异)
3、C语言的运行效率是相对于Java,C#等高级语言是最高的,毫无疑问,这并不是说java不如C,只是重点不同。4、Java的编写效率一般高一点,Java提供的功能多一点,所以相对来说写的代码可以少一点;C++的运行效率要高于Java,实现同样的功能,C++的运行时间一般要比Java程序短很多。java技术相比C++有什么...

相似回答