大公司可以實現自己的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項目中打包虛擬機,並且去掉多餘包,進行優化。但是不是每個大公司都有自己的虛擬機。


分享到:


相關文章: