首页 >

为什么说Java比CC++慢? – 网络|

远航技术的系统怎么样,大连华企智源怎么样,钢筋标号 怎么打远航技术的系统怎么样,大连华企智源怎么样,钢筋标号 怎么打为什么说Java比CC++慢? - 网络|为什么说Java比CC++慢

那为什么说Java比C/C++运行效率上要慢呢?且听偶说:

1、Java是解释型语言、C/C++是编译型语言:

C++可以理解为是C语言的升级扩展版本,C/C++的程序编译出来的是机器码,可以被CPU直接加载执行的;而Java编译出来的是字节码,然后要通过JIT编译器“翻译”为机器码,然后再被JVM加载执行。Java中间多了个翻译过程。

两种语言的执行过程大概如下:

  • Java:
    程序》编译》字节码》JVM加载处理》机器码》执行

  • C/C++:
    程序》静态编译器》机器码》执行

2、Java其实是运行在JVM(虚拟机)上的:

Java的跨平台其实靠的就是与系统无关的字节码与JVM来实现的,JVM可以理解为是一个虚拟机系统,Java程序是跑在JVM上面的(JVM底层是用C实现的)。所以Java的性能还受JVM的配置影响。

而C/C++编译的程序是不需要跑在虚拟机上的。

3、Java语言特性带来的性能开销:

Java采用的是动态链接、C/C++采用的是静态链接,所以两者性能上差距是有的。

另外JVM还会进行其它一些操作,如:字节码加载、类型检测、GC垃圾回收、类型转换等等,这些操作也是要耗时的。


综上,Java运行效率比C/C++要慢一点,是存在的,但随着JVM及JIT的不断优化,这种速度上的差异只会越来越小。另外,Java是牺牲了部分性能来换取“一次编写、到处运行”的跨平台实现,也是值得的。


为什么说Java比CC++慢? - 网络|
  • 电商2B和2C是什么意思?以及他们的区别? - 网络|
  • 电商2B和2C是什么意思?以及他们的区别? - 网络| | 电商2B和2C是什么意思?以及他们的区别? - 网络| ...

    为什么说Java比CC++慢? - 网络|
  • c语言换行符怎么设置? - 网络|
  • c语言换行符怎么设置? - 网络| | c语言换行符怎么设置? - 网络| ...

    为什么说Java比CC++慢? - 网络|
  • C语言清屏函数(详解清屏函数的使用方法) - 网络|
  • C语言清屏函数(详解清屏函数的使用方法) - 网络| | C语言清屏函数(详解清屏函数的使用方法) - 网络| ...