专栏名称: java那些事
分享java开发中常用的技术,分享软件开发中各种新技术的应用方法。每天推送java技术相关或者互联网相关文章。关注“java那些事”,让自己做一个潮流的java技术人!《java程序员由笨鸟到菜鸟》系列文章火热更新中。
目录
相关文章推荐
芋道源码  ·  2月,Java岗又爆了?! ·  16 小时前  
芋道源码  ·  SpringBoot ... ·  昨天  
芋道源码  ·  千万不要滥用Stream.toList(),有坑! ·  2 天前  
51好读  ›  专栏  ›  java那些事

网上说 Java 的性能已经达到甚至超过 C++,是真的吗?

java那些事  · 公众号  · Java  · 2017-02-26 16:30

正文

看知乎上好多Java程序员都说由于JIT技术的引入,Java的性能已经和C++一样了,而且Java的开发效率极高,可以省下60%的时间。请 问事实真的是这样吗?我平常也都在写这两个语言,但是因为开发的软件的复杂度不大,并没有感觉到性能和开发效率有太大的差异,如果真的如那些Java程序 员所说的那样,为什么主流的游戏引擎都不用Java实现呢?而且教育版的Minecraft为什么要用C++重写呢?



Jvm是c加加写的

即 Java程序 等于 Java代码加c加加jvm

若Java程序大于c加加

则用Java程序实现jvm比c加加要快

因此 Java代码加Java程序编写的jvm加c加加编写的运行jvm的jvm 大于 普通Java程序(Java代码加c加加编写的jvm)

以此类推 继续用Java编写的jvm替换最底层的c加加编写的jvm,得:java编写的jvm嵌套越多,效率越高


Javaer还等什么

Java 语言本身很烂,要是离开生态啥都不是,简单的功能也可以实现据复杂,性能和c++没的比,当然人家是工业级语言,适用于大项目的,确实开发也算快,关键是在企业应用上生态已经起来了。解决方案XX的多


c++对于底层的接触比较多,它可以自己释放自己申请的内存,当然现在就算用c++重构一次hadoop,我觉得也不会有java快,每种语言都有特定的场景及搭配,就像我们生活中一样,都是成年人就别谈论什么好什么不好,这有点幼稚,当我们听见这些争论时,应该装不懂


需 要考虑场景和算法,两者都采用最优算法的情况下,Java在性能方面最多和C++持平,是不可能超过的。因为Java为了跨平台,不得不牺牲了灵活性和性 能,所以在性能方面是无论如何不能和本地代码的C++相提并论的。比如取字符串长度,Java在99%的情况下比C++快,原因大家懂的。但是,在两个语 言中,字符串的数据结构是不一样的,也就是说场景不同。


推荐程序员必备微信号


程序员内参
微信号:

programmer0001







请到「今天看啥」查看全文