深入理解java虛擬機-JVM高級特性和最佳實現(xiàn)(一)——初識

每篇一葉

Java is a general-purpose computer-programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere",meaning that compiled Java code can run on all platforms that support Java without the need for recompilation. Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of computer architecture. As of 2016, Java is one of the most popular programming languages in use,particularly for client-server web applications, with a reported 9 million developers.Java was originally developed by James Gosling at Sun Microsystems (which has since been acquired by Oracle Corporation) and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++, but it has fewer low-level facilities than either of them.

Java是一種通用的計算機編程語言,它是并發(fā)的如失、基于類的、面向?qū)ο蟮模⑶覍iT設(shè)計為具有盡可能少的實現(xiàn)依賴關(guān)系。它旨在讓應(yīng)用程序開發(fā)人員“編寫一次觉渴,隨處運行”爆办,這意味著編譯后的Java代碼可以在支持Java的所有平臺上運行,而無需重新編譯峰弹。Java應(yīng)用程序通常編譯成字節(jié)碼,無論計算機體系結(jié)構(gòu)如何芜果,都可以在任何Java虛擬機( JVM )上運行鞠呈。截至2016年,Java是目前最流行的編程語言之一右钾,尤其適用于客戶端-服務(wù)器web應(yīng)用程序蚁吝,據(jù)報道有900萬開發(fā)人員。Java最初是由Sun微系統(tǒng)公司的James Gosling開發(fā)的(后來被Oracle公司收購)舀射,1995年作為Sun微系統(tǒng)Java平臺的核心組件發(fā)布窘茁。該語言的大部分語法來自C和c++,但它的低級工具比這兩者都少脆烟。

這是維基百科對java的定義山林。周志明《java虛擬機 Jvm高級特性和最佳實現(xiàn)》走近java章節(jié)概述java特點是:結(jié)構(gòu)嚴(yán)謹(jǐn)、面向?qū)ο蟆?b>write once, run anywhere浩淘,一次編寫捌朴,到處運行吴攒,擺脫硬件平臺的束縛。提供一個相對安全的內(nèi)存管理和訪問機制砂蔽,避免了絕大部分的內(nèi)存泄露和指針越界問題洼怔;實現(xiàn)了熱點代碼檢測和運行時編譯及優(yōu)化;完善的應(yīng)用程序接口左驾,無數(shù)來自商業(yè)機構(gòu)和開源社區(qū)的第三方類庫來幫助它實現(xiàn)各種各樣的功能镣隶。


百度百科提供java技術(shù)體系


歷史發(fā)展:As of 2017, both Java 8 and 9 are officially supported. Major release versions of Java, along with their release dates:
JDK 1.0 (January 23, 1996)
JDK 1.1 (February 19, 1997)
J2SE 1.2 (December 8, 1998)
J2SE 1.3 (May 8, 2000)
J2SE 1.4 (February 6, 2002)
J2SE 5.0 (September 30, 2004)
Java SE 6 (December 11, 2006)
Java SE 7 (July 28, 2011)
Java SE 8 (March 18, 2014)
Java SE 9 (September 21, 2017)
1995-5-23 Oak改名Java.
1996-1-23 JDK1.0
1997-2-19 JDK1.1 JDBC,JAR,JavaBeans RMI
1998-12-4 JDK1.2 J2SE J2EE J2ME EJB SWING
2000-5-8 JDK1.3 美洲紅隼?
2002-2-13 JDK1.4 灰背隼
2004-9-30 JDK5.0 老虎 改進(jìn)了java內(nèi)存模型 java memory model 提供了java.util.concurrent并發(fā)包
2006-12-11 JDK6.0 野馬
2009-2-19 JDK7.0 海豚 擬定Lambda項目(實際上jdk8才發(fā)布),Jigsaw項目诡右,動態(tài)語言安岂,GarbageFirst收集器,Coin項目帆吻。同年SUN公司被Oracle公司收購
2014-3-18 JDK8.0 蜘蛛

Java大事件

1995年5月23日域那,Oak語言改名Java,首次提出Write Once,Run Anywhere

1996年1月23日猜煮,JDK1.0發(fā)布次员,代表技術(shù)java虛擬機、Applet王带、AWT等

1996年4月淑蔚,10個主要的操作系統(tǒng)供應(yīng)商申明將在其產(chǎn)品中嵌入Java技術(shù)。在5月底愕撰,Sun公司在舊金山舉行了首屆JavaOne大會刹衫,這是每年一度的技術(shù)盛會。

1997年2月19日搞挣,發(fā)布JDK1.1带迟,提供了一些最基礎(chǔ)的支撐點。主要代表技術(shù)有JAR文件格式柿究、JDBC邮旷、JavaBean、RMI蝇摸。Java語法也有一定的擴展,如Inner Class和Reflection

到1999年4月8日办陷,jdk1.1.0-jdk1.1.8九個小版本

1998年12月4日貌夕,JDK1.2發(fā)布。Java技術(shù)體系拆分為J2ME,J2SE,J2EE民镜。代表技術(shù)有EJB啡专、Java Plug-in、Java IDL制圈、Swing等们童,并第一次內(nèi)置了JIT編譯器(出現(xiàn)過Classic VM畔况、HotSpot VM、Exact VM三個虛擬機慧库,Classic VM以外掛的形式使用JIT跷跪,其他兩個內(nèi)置JIT編譯器)

1999年4月27日 HotSpot虛擬機發(fā)布,成為JDK1.3及之后所有版本SunJDK的默認(rèn)虛擬機

2000你那5月8日齐板,JDK1.3發(fā)布吵瞻。改進(jìn)1.2上的一些類庫(如數(shù)學(xué)運算和新的Timer API等),JNDI服務(wù)從JDK1.3開始作為一項平臺級服務(wù)提供甘磨,使用CORBA IIOP來實現(xiàn)RMI的通信協(xié)議等橡羞。對Java 2D做了改進(jìn),提供大量新的Java 2D API济舆,并添加JavaSound類庫卿泽。

2002年2月13日,JDK1.4發(fā)布滋觉。一個Java真正成熟的版本又厉。技術(shù)表現(xiàn):正則表達(dá)式、異常鏈椎瘟、NIO覆致、日志類、XML解析器和XSLT轉(zhuǎn)換器等

2004年9月30日肺蔚,JDK1.5發(fā)布煌妈。語法易用性做了非常大的改進(jìn)。如自動裝箱宣羊、泛型璧诵、動態(tài)注解、枚舉仇冯、可變長參數(shù)之宿、遍歷循環(huán)(foreach循環(huán))等。改進(jìn)了內(nèi)存模型Java Memory Model苛坚、提供Java.util.concurrent并發(fā)包等比被。

2006年12月11日,JDK1.6發(fā)布泼舱。改進(jìn)包括:提供動態(tài)語言支持(通過內(nèi)置Mozilla JavaScript Rhino 引擎實現(xiàn))等缀、提供編譯API和微型HTTP服務(wù)器API等。對虛擬機內(nèi)部進(jìn)行大量的改進(jìn)娇昙,包括鎖與同步尺迂、垃圾收集、類加載等方面的算法都有相當(dāng)多的改動。

2006年11月13日的JavaOne大會上Sun公司宣布最終會將Java開源

2009年2月19日 JDK1.7發(fā)布噪裕,JDK1.7的功能規(guī)劃有Lambda項目蹲盘、Jigsaw項目、動態(tài)語言支持膳音、GarbageFirst收集器和Coin項目召衔,然而最后并沒有都實現(xiàn)。最終JDK1.7主要改進(jìn):提供G1收集器严蓖,加強對非Java語言的調(diào)用支持薄嫡、升級類加載架構(gòu)等。

2009年4月20日颗胡,Sun公司被收購毫深,Java商標(biāo)最終歸Oracle公司所有。

java虛擬機的發(fā)展史毒姨。

Sun Classic/Exact VM 第一款商用java虛擬機
Sun HotSpot VM Sun JDK 和OpenJDK所帶的虛擬機哑蔫,以下是我本地的JDK。2006年JavaOne大會上Sun公司宣布java開源弧呐,隨后一年闸迷,JDK各個部分(包括HotSpot VM)在GPL協(xié)議下公開了源碼,并在這基礎(chǔ)上建立了OpenJDK

本地JDK

Sun Mobile-Embedded VM/Meta-Circular VM 面對移動和嵌入式市場俘枫,僅僅用于研究腥沽、驗證某種技術(shù)和觀點。
BEA JRockit/IBM J9 VM BEA和IBM公司研發(fā)的虛擬機鸠蚪。
Azul VM / BEA Liquid VM 真正的高性能虛擬機今阳。
Apache Harmony / Goole Android Dalvik VM 這兩款只能稱為虛擬機,不能稱為java虛擬機茅信。對近幾年的java世界產(chǎn)生了非常大的影響和挑戰(zhàn)盾舌,可能崩潰java生態(tài)系統(tǒng)。
Microoft JVM和其他 微軟支持Java Applets應(yīng)用而開發(fā)了自己的java虛擬機蘸鲸,雖然只在windows平臺妖谴,卻是當(dāng)時在windows下性能最好的java虛擬機,然而最終輸了官司酌摇,windows 逐漸移出java虛擬機相關(guān)功能膝舅。

展望java技術(shù)的未來
模塊化
混合語音
多核并行
進(jìn)一步豐富語法
64位虛擬機

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市妙痹,隨后出現(xiàn)的幾起案子铸史,更是在濱河造成了極大的恐慌,老刑警劉巖怯伊,帶你破解...
    沈念sama閱讀 212,185評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡耿芹,警方通過查閱死者的電腦和手機崭篡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,445評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吧秕,“玉大人琉闪,你說我怎么就攤上這事≡冶颍” “怎么了颠毙?”我有些...
    開封第一講書人閱讀 157,684評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長砂碉。 經(jīng)常有香客問我蛀蜜,道長,這世上最難降的妖魔是什么增蹭? 我笑而不...
    開封第一講書人閱讀 56,564評論 1 284
  • 正文 為了忘掉前任滴某,我火速辦了婚禮,結(jié)果婚禮上滋迈,老公的妹妹穿的比我還像新娘霎奢。我一直安慰自己,他們只是感情好饼灿,可當(dāng)我...
    茶點故事閱讀 65,681評論 6 386
  • 文/花漫 我一把揭開白布幕侠。 她就那樣靜靜地躺著,像睡著了一般碍彭。 火紅的嫁衣襯著肌膚如雪晤硕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,874評論 1 290
  • 那天硕旗,我揣著相機與錄音窗骑,去河邊找鬼。 笑死漆枚,一個胖子當(dāng)著我的面吹牛创译,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播墙基,決...
    沈念sama閱讀 39,025評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼软族,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了残制?” 一聲冷哼從身側(cè)響起立砸,我...
    開封第一講書人閱讀 37,761評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎初茶,沒想到半個月后颗祝,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,217評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,545評論 2 327
  • 正文 我和宋清朗相戀三年螺戳,在試婚紗的時候發(fā)現(xiàn)自己被綠了搁宾。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,694評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡倔幼,死狀恐怖盖腿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情损同,我是刑警寧澤翩腐,帶...
    沈念sama閱讀 34,351評論 4 332
  • 正文 年R本政府宣布,位于F島的核電站膏燃,受9級特大地震影響茂卦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蹄梢,卻給世界環(huán)境...
    茶點故事閱讀 39,988評論 3 315
  • 文/蒙蒙 一疙筹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧禁炒,春花似錦而咆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,778評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至们豌,卻和暖如春涯捻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背望迎。 一陣腳步聲響...
    開封第一講書人閱讀 32,007評論 1 266
  • 我被黑心中介騙來泰國打工障癌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人辩尊。 一個月前我還...
    沈念sama閱讀 46,427評論 2 360
  • 正文 我出身青樓涛浙,卻偏偏與公主長得像,于是被迫代替她去往敵國和親摄欲。 傳聞我的和親對象是個殘疾皇子轿亮,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,580評論 2 349

推薦閱讀更多精彩內(nèi)容