开发者社区> 问答> 正文

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

已解决

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

展开
收起
晓生寒 2018-12-12 20:46:34 3982 0
8 条回答
写回答
取消 提交回答
  • 1.阿里云大学讲师,主讲《微服务Spring Cloud设计与开发实战》《MongoDB高级实战》等课程 2.MongoDB中文社区专家 3.《MongoDB实战》第2版译者 5.吉林大学计算机科学学士、上海交通大学硕士
    采纳回答

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

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

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

    2019-07-17 23:20:17
    赞同 展开评论 打赏
  • JAVA的开发过程就比C++快,还快很多。

    2019-07-17 23:20:17
    赞同 展开评论 打赏
  • 肯定C++快,阿里选Java是应为学习成本的问题

    2019-07-17 23:20:17
    赞同 展开评论 打赏
  • 阿里高级开发工程师 长期招聘 Java 高级开发工程师/技术专家。欢迎赐简历:chongyue.jxy@alibaba-inc.com

    有些场景可以

    2019-07-17 23:20:17
    赞同 展开评论 打赏
  • 单论执行效率来看,C++肯定是比java快。这是编译机制决定的。
    但是比起开发效率,java应该就比C++快很多了

    2019-07-17 23:20:17
    赞同 展开评论 打赏
  • 一线互联网开发者

    这里快需要指出什么维度的快。
    如果说是执行速度。那肯定是C++快,毕竟一个是编译后执行,一个是编译后在虚拟机上解释执行。
    如果说一个电商业务需求来了,我相信使用Java来开发还是比C++快的,这里有很多原因,比如Java生态系统比较好,很多东西拿来用即可,Java也不用关心内存管理的问题,而且Java代码可读性可维护性都比较好,新人也能比较快接手。
    如果现在一个公司想招人做个O2O,招聘的时候,如果去组建Java团队也会比C++快,毕竟现在搞Java的很多。

    2019-07-17 23:20:17
    赞同 展开评论 打赏
滑动查看更多
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载