黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

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

Java跨平臺性的理解

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

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

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規范的實現,這樣結合誤區二就很容易理解了。不過還是要說一點,誤區三其實根本就不該有,因為原因和結果本就不是一個層次的東西。

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产精品莉莉欧美自在线线 | a免费在线观看视频 | 精品欧美中国福利第一导航 | 一级a性色生活片久久毛片 一级a美女毛片 | 欧美一级在线观看播放 | 日本亚洲免费 | 18成人免费观看网站入口 | 国产午夜大片 | 午夜免费在线观看 | 天天看片日日夜夜 | 亚洲免费福利 | 久久激情五月 | 久久综合九色综合97小说 | 亚洲区中文字幕 | 亚洲欧美成aⅴ人在线观看 亚洲欧美成人 | 一个人看的www网站 一个人看的www在线 | 久久国产综合精品欧美 | 秋霞手机入口二日韩区 | 色综合色狠狠天天久久婷婷基地 | 日韩国产欧美在线观看一区二区 | 欧美国产日韩综合 | 黄网视频 | 美女黄网站全是免费网址 | 午夜久久免影院欧洲 | 亚洲成人网页 | 黄网址在线 | 欧美日韩精品在线观看 | h视频国产 | 国产1卡2卡三卡四卡网站 | 奇米一区 | 无遮免费网站在线入口 | 一国产大片在线观看 | 亚洲成a人片在线网站 | 97国产在线视频公开免费 | 黄色片免费看看 | 久久久免费观看 | 日韩99在线| 欧美日韩在线播放 | 污网站免费在线观看 | 国产成人免费手机在线观看视频 | 一个人在线看的www视频 |