大公司可以实现自己的java虚拟机吗?为什么?

木幽书


当然有了,因为官方维护的Java虚拟机其实在很多场景下并不能满足企业的实际需求,所以很多企业不得不做定制化的开发,或者说对于自己的场景优化,开发出符合自己的Java虚拟机标准。当然其实目前的主流标准还是Hotspot(当然这并不一定是事实,想一下Google和阿里巴巴这种Java大厂),其他的基本上已经被逐渐淘汰了,而有的类似于IBM的J9基本上都是IBM自己的平台上用,很难大规模使用。

JVM生态其实一直都很繁荣,在一定程度上比Java语言本身还要繁荣,因为Java语言本身很难做出优化,但是在虚拟机层面却是企业能够参与到的,能够根据自己的实际需求做出一些调整的。比如电商巨头,也是我们中国人自己的企业阿里巴巴就已经被邀请成为了Java全球管理组织执行委员会成员。

今天就来给大家盘点一下有哪些比较知名的Java虚拟机实现。

  • 曾经的J++,现在的.NET

相信这么说很多人感觉到误解,这么说吧如果没有J++,或者说J++现在依然存在,那么就不会有今天的.NET,J++是微软Java实现版本,表达式、关键字、语法规约都和Java一样,符合Java的语言规范。

当然微软为了自己的商业目的,J++没有实现部分的Java特征,又增加了一些Java原本没有的特征,在系统层级的调用没有遵循Java的规格,提供了Windows下的WFC框架,可以说跟微软对C/C++一样确实做了很大的改变。但是这就让sun公司所谓的不兼容原则发挥了作用,最后微软不得不在sun公司的商业压力下放弃,慢慢演化成J#,最终到了今天的C#,本质上J++效率非常好,可以说目前的主流JVM都没得比的,你看看C#再看看Java对比,不论是语言优势,还是在虚拟机层面,C#其实是优于Java的,当然微软在于这方面技术实力很强,但是Sun公司要维护Java,毕竟sun不想开发者都跟着微软混了,最终不欢而散,其实J++非常接近现代生产力的水平。

  • Google为了Android做了微软一样的事情

虽然Google会悄悄咪咪的告诉你,Android上的Dalvik / ART不是JVM,但其实本质上,从技术骨子里分析也是JVM,只是Google为了某些麻烦,叫了一个自己的名字。基本上是可以完整支持Java SE的所有功能的,但是Google为了自己的生态,重写重构了很多东西,很多组件Google都重写了。

不过Google这两年也没被oracle玩坏,Oracle为了同样的商业利益,在很多方面限制Google在Java方面的发展,于是Google将Kotlin设置为第一类语言,当年oracle收购sun公司,把sun公司对微软的招数用在了Google身上,好的东西没学到,坏的东西却是一脉相承。当然我不评价绝对的对错,只是从技术的发展来讲我支持Google和Microsoft,当然企业首先考虑的是商业价值。

  • 中国之最阿里巴巴的AJVM

虽然我一直认为在技术层面在国内,阿里跟百度还是有较大差距的,但是在技术转型Java以后,阿里做出的贡献有目共睹,阿里的AJVM是具有很大现实意义的技术标准。

双十一大家应该了解,这重量级的技术压力,阿里巴巴很好的解决了,现在淘宝技术、天猫技术、支付宝技术、阿里云技术等等几乎都是建立在这个体系之上的,可以说实力不容小觑。作为Java大厂,阿里巴巴已经成为了Java全球管理组织执行委员会成员,这个实力已经受到了国际同行的广泛认可,值得骄傲。

作为一个一线技术从业者,其实对目前Java的发展还是挺失望的,当年那个愚蠢的Sun公司已经差点死了最后贱卖给Oracle,Oracle倒是把Sun公司的愚蠢、固执学了个透,Google给了Java第二春,然而Oracle却想着处处为难Google,所谓的商业利益也许是个错误的决定。现在很多语言要是支持上来了,swift假设不仅局限于苹果的开发生态以内,.NET如果权限开源,PHP和python还在后面虎视眈眈,说实话Java日子并不好过,Java的优势已经不那么明显了,但是缺点却越来越明显,未来真不好走!


EmacserVimer


我相信大公司一定有人懂虚拟机源码。在java项目中打包虚拟机,并且去掉多余包,进行优化。但是不是每个大公司都有自己的虚拟机。


分享到:


相關文章: