IBM的J9全稱:IBM Technology for Java Virtual Machine,簡(jiǎn)稱IT4J凶硅,內(nèi)部代號(hào)J9
J9的市場(chǎng)定位與HotSpot接近悠咱,服務(wù)器端、桌面應(yīng)用贾虽、嵌入式等多用途VM
J9是目前由影響力的三大商業(yè)虛擬機(jī)之一逃糟,2017年IBM發(fā)布了開(kāi)源J9 VM,命名為OpenJ9蓬豁,交給Eclipse基金會(huì)管理绰咽,也稱Eclipse OpenJ9。
摘錄《深入理解java虛擬機(jī)》----周志明----第三版的部分原文:
??IBM J9虛擬機(jī)并不是IBM公司唯一的Java虛擬機(jī)地粪,不過(guò)目前IBM主力發(fā)展無(wú)疑就是J9取募。J9這個(gè)名 字最初只是內(nèi)部開(kāi)發(fā)代號(hào)而已,開(kāi)始選定的正式名稱是“IBM Technology for Java Virtual Machine”蟆技,簡(jiǎn) 稱IT4J玩敏,但這個(gè)名字太拗口斗忌,接受程度遠(yuǎn)不如J9。J9虛擬機(jī)最初是由IBM Ottawa實(shí)驗(yàn)室的一個(gè) SmallTalk虛擬機(jī)項(xiàng)目擴(kuò)展而來(lái)旺聚,當(dāng)時(shí)這個(gè)虛擬機(jī)有一個(gè)Bug是因?yàn)?KB常量值定義錯(cuò)誤引起织阳,工程師們 花了很長(zhǎng)時(shí)間終于發(fā)現(xiàn)并解決了這個(gè)錯(cuò)誤,此后這個(gè)版本的虛擬機(jī)就被稱為K8砰粹,后來(lái)由其擴(kuò)展而來(lái)唧躲、 支持Java語(yǔ)言的虛擬機(jī)就被命名為J9。與BEA JRockit只專注于服務(wù)端應(yīng)用不同碱璃,IBM J9虛擬機(jī)的市場(chǎng) 定位與HotSpot比較接近[1]弄痹,它是一款在設(shè)計(jì)上全面考慮服務(wù)端、桌面應(yīng)用嵌器,再到嵌入式的多用途虛 擬機(jī)肛真,開(kāi)發(fā)J9的目的是作為IBM公司各種Java產(chǎn)品的執(zhí)行平臺(tái),在和IBM產(chǎn)品(如IBM WebSphere等) 搭配以及在IBM AIX和z/OS這些平臺(tái)上部署Java應(yīng)用嘴秸。
??IBM J9直至今天仍舊非郴傩溃活躍,IBM J9虛擬機(jī)的職責(zé)分離與模塊化做得比HotSpot更優(yōu)秀岳掐,由J9 虛擬機(jī)中抽象封裝出來(lái)的核心組件庫(kù)(包括垃圾收集器凭疮、即時(shí)編譯器、診斷監(jiān)控子系統(tǒng)等)就單獨(dú)構(gòu) 成了IBM OMR項(xiàng)目串述,可以在其他語(yǔ)言平臺(tái)如Ruby执解、Python中快速組裝成相應(yīng)的功能。從2016年起纲酗, IBM逐步將OMR項(xiàng)目和J9虛擬機(jī)進(jìn)行開(kāi)源衰腌,完全開(kāi)源后便將它們捐獻(xiàn)給了Eclipse基金會(huì)管理,并重新 命名為Eclipse OMR和OpenJ9[2]觅赊。如果為了學(xué)習(xí)虛擬機(jī)技術(shù)而去閱讀源碼右蕊,更加模塊化的OpenJ9代碼 其實(shí)是比HotSpot更好的選擇。如果為了使用Java虛擬機(jī)時(shí)多一種選擇吮螺,那可以通過(guò)AdoptOpenJDK來(lái) 獲得采用OpenJ9搭配上OpenJDK其他類庫(kù)組成的完整JDK饶囚。
??除BEA和IBM公司外,其他一些大公司也號(hào)稱有自己的專屬JDK和虛擬機(jī)鸠补,但是它們要么是通過(guò) 從Sun/Oracle公司購(gòu)買版權(quán)的方式獲得的(如HP萝风、SAP等),要么是基于OpenJDK項(xiàng)目改進(jìn)而來(lái)的 (如阿里巴巴紫岩、Twitter等)规惰,都并非自己獨(dú)立開(kāi)發(fā)。