大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 常見問題 Java跨平臺性的理解

Java跨平臺性的理解

更新時間:2017-06-07 16:03:00 來源:動力節點 瀏覽9912次

  很多人因為用了“跨平臺的語言"寫沒有寫的出跨平臺的程序而盲目的認為該語言的跨平臺性是子虛烏有。

Java跨平臺的理解

  從開發人員或編程語言的角度來理解,”平臺“就是指語言的運行時環境,比如Java的平臺就是JRE(JavaRuntimeEnvironment)。是不是覺得很奇怪,難道平臺不是指Windows、Linux這樣的操作系統嗎?沒錯,Windows和Linux也確實是平臺,但是這個平臺對于Java來說太寬泛了,就象從來沒有人說Java的平臺是i386、arm一樣。簡單理解就是光有操作系統是無法運行Java程序的。而JVM則包含在JRE里。

  如果某個語言對應的可執行體能夠不作修改或者只做少量修改就能在其他平臺運行,那么這個語言就是跨平臺的。是的,允許做少量修改,但是這個過程一般是在程序員不知道的情況下進行的,通常這個任務由平臺來完成。但是不管怎么說,這只跟可執行體有關,而不是源碼。

  對于一段Java程序,要讓它可以執行,得至少經過兩個步驟,第一步,用Java編譯器將源碼編譯成字節碼;第二步,用Java解釋器執行字節碼。可見可見,Java程序并非像C程序那樣直接執行,而是要有個啟動器,也就是所謂的JVM(JavaVirtualMachine)來加載并執行。由此可見,Java跨平臺的兩個重要因素是:

  1.有個能產生符合Java規范的字節碼的編譯器;

  2.有個能解釋上述符合Java規范的字節碼的解釋器。

  換句話說,在任何操作系統上,只要存在JRE,就可以運行Java可執行體,而無所謂它來源于何處,只要”符合Java規范“就行。哈哈,到這里是不是有點亂,上面不是說Java的平臺是JRE嗎?難道JRE在不同的操作系統平臺上還會變?是的,正是因為上述Java工具集是隨操作系統的不同而不同的,我們才一再強調”符合Java規范的字節碼“。因為Java編譯器和Java解釋器等一系列的工具集本身是依賴于操作系統的,只不過它們的輸入和輸出都符合統一的Java規范。如果上述兩個條件換了其中任何一個,則很有可能使得Java不再跨平臺。

  除了以上兩點,還有第三個因素,Java針對平臺設計的庫,也就是所謂的Jar包,這些jar包雖然大部分都是Java編寫的,但是還是有不少地方是針對平臺獨特設計的,比如不同操作系統之間路徑的表示,從這個角度講,平臺移植后的Java字節碼已經被解釋器改變了。

  誤區一:Java語言是跨平臺的,所以Java程序也是跨平臺的

  ”Java語言“和”Java程序“并非同一個概念,Java語言實際上只是一系列的規范,該規范為程序員規定了Java的語法和語義規則。Java程序則是根據這些規范產生的可執行體。通常情況下,程序的需求或多或少都會關系到一些操作系統之間的差異,比如,Windws的文件系統是多根的,Unix的文件系統則是單根的;再比如,Java連接數據庫的程序中,用到了與平臺相關的ODBC,此時當程序拿到其他平臺上去難免會出錯。前面說了,Java工具集是依賴于操作系統的,也就是說它們不能改變操作系統之間的差異,這就是JNI(JavaNativeInvoke)存在的原因之一。當一個程序使用了某個操作系統的特性并且移植后的操作系統沒有此特性時,雖然它們能被該平臺執行,但是還是會運行出錯。

  誤區二:Java語言是跨平臺的,所以Java程序是跨Java工具集的

  從上面的說明可以看出,Java語言跨平臺的本質是因為Java工具集遵循同一套規范。規范是個抽象的概念,那自然需要對應著一種實現,目前常見的有三種實現,即Sun的官方實現;IBM的實現;GNU的實現。很有可能一套工具集對應與一套實現,使得不同實現之間并不通用,況且,每套實現在滿足規范后還可能增加自己的特性,比如,GNU可以直接將java源碼、字節碼、jar包等編譯成本地可執行體。當然它們對源碼規范的實現都是一樣的,但是也并不保證這些實現一定不會出現不同。因此對于給定的一套工具集,Java語言才是跨平臺的,其他工具集則允許不是。

  誤區三:Java語言是跨平臺的,所以Java程序是跨Java應用服務器的

  在一套給定的工具集上,Java應用服務器做為JavaEE的容器,從本質上來說是JavaEE規范的實現,這樣結合誤區二就很容易理解了。不過還是要說一點,誤區三其實根本就不該有,因為原因和結果本就不是一個層次的東西。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 成年性视频bbixx | 欧美毛片一级的免费的 | 久久久日韩精品国产成人 | 狠狠插网站| 四虎在线最新永久免费 | 国产精品毛片一区二区三区 | 日韩中文字幕视频 | 日本xoxoxo在线播放 | 狠狠综合视频精品播放 | 久久啊| 婷婷国产成人久久精品激情 | 国产精品麻豆高清在线观看 | 午夜欧美精品久久久久久久久 | 中文字幕在线视频免费 | 97毛片| 久久看片| 亚洲国产精 | 999久久久精品视频在线观看 | 亚洲黄色免费在线观看 | 99视频免费 | 国产日产欧美精品一区二区三区 | 日韩a无吗一区二区三区 | 伊人一级| 精品视频999 | 国产欧美自拍 | 中文字幕日韩一区二区不卡 | 日本在线视频毛片 | 麻豆精品久久久 | 日本一本一道久久香蕉免费 | 亚洲一区亚洲二区 | 日本三级欧美三级 | 毛片女女女女女女女女女 | 欧美 亚洲 中文字幕 | 草草福利影院 | 毛片网络 | 久久精品图片 | 男女www| 亚洲一区二区三区不卡在线播放 | 一区二区三区视频观看 | 91在线亚洲综合在线 | www.99精品视频在线播放 |