[@徐雷frank][¥20]Java可能比C++快吗?为什么?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

[@徐雷frank][¥20]Java可能比C++快吗?为什么?

晓生寒 2018-12-12 20:46:34 1837

如题,都说C++运行比java快很多,具体体现在哪些方面呢?
阿里为什么选择java,而不是c++。

Java C++
分享到
取消 提交回答
全部回答(8)
  • 徐雷frank
    2019-07-17 23:20:17
    已采纳

    各有所长,领域不同。
    1、C++比Java快,主要是语言的执行原理决定的,Java并不是要取代C++。Java有自己擅长的问题领域。
    2、C++原生编译,直接生成对不同系统和CPU编译成优化过的指令集,直接执行,Java需要一次中间代码的再次跟进系统和CPU再次编译优化执行。所以流程上多一步。
    3、C++性能优势体现在,现在很多数据库内核、图形软件都是C++开发的,追求性能的程序C++是王道。
    4、Java主要做企业应用,比如网站、或者系统。C++开发网站太慢了,主要是开发速度,不是运行速度。
    5、阿里主要是电商平台和支付系统,属于企业级应用开发,阿里也有C++比如自研的MySQL、OB数据库,以及优化JVM内核都是C++。

    0 0
  • 1296995534731106
    2020-03-13 14:31:58

    这个问题需要看情况。如果是相同机器里的桌面程序,单线程运行一个算法,c++比java快。因为c++直接编译成汇编执行,java需要运行在虚拟机里,先转成字节码然后再转汇编。 如果是分布式网络架构的,那就不只是和运行速度有关系了,还需要考虑多少个机器,网络IO,架构之类的,这方面java很擅长。 为什么选择java,因为不容易出错。 c++的野指针问题很麻烦,经常出现跑飞了但是不知道哪里飞的问题,java不会出现野指针,所以栈信息明明白白的在log里放着。而且java开发简单,适合学校批量培养人才。c++的大牛很难招,大部分人都只是学了个皮毛。 而且由于java简单的原因,社区非常活跃,中间件架构也多,而不少人写c++都是重复造轮子。 c++在不同平台语法可能不一样,有些特性只有某些平台支持,所以c++做不到完全的write once,run everywhere。

    0 0
  • 知钵
    2019-07-17 23:20:17

    说的是JIT吧,借助于JIT,JVM可以对调用频繁的代码进行即时编译,加快代码运行。但如果C++优化到位的话,大部分场景还是C++快
    这个是java / C++的benchmark比较
    https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/java-gpp.html

    0 0
  • 大喵Schnitzel
    2019-07-17 23:20:17

    JAVA的开发过程就比C++快,还快很多。

    0 0
  • 树下偷懒蚁
    2019-07-17 23:20:17

    肯定C++快,阿里选Java是应为学习成本的问题

    0 0
  • jxiaoyu
    2019-07-17 23:20:17

    有些场景可以

    0 0
滑动查看更多
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程