中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java如何支持平臺無關性

發布時間:2022-02-28 11:15:24 來源:億速云 閱讀:113 作者:小新 欄目:開發技術

小編給大家分享一下Java如何支持平臺無關性,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

為什么Java要支持平臺無關性

眾所周知,Java是平臺無關的語言,那么Java為什么要支持平臺無關性,總結一下,有如下幾點

  1. 支持多變的網絡環境。如今是一個互聯網的時代,網絡將各種各樣的計算機和設備連接起來,比如網絡連接了windows的PC機,UNIX工作站等等。為了保證程序能夠不加任何修改運行于網絡上的任何計算機,而不管計算機是什么種類,什么平臺,這樣就極大減輕了系統管理員的工作。尤其是程序是通過網絡環境進行部署的。

  2. 支持網絡化嵌入式設備。目前工作場所中存在各種各樣的嵌入式設備,比如打印機,掃描儀,傳真機等。他們往往通過網絡連接起來,甚至在家庭網絡和汽車內部也存在這樣那樣的嵌入式設備 。Java的平臺無關性可以簡化這樣的系統管理任務。無論是哪個網絡的管理員,它只需關注程序本身即可。此外添加一臺新設備,可以立即被其他設備訪問到,也可以訪問其他設備。這都是平臺無關性帶來的好處。

  3. 減少開發者部署程序的成本和時間。

對于開發者而言, Java平臺無關的能力給予網絡一個同構的運行環境,使得分布式系統可以圍繞著“網絡移動對象”開構建。比如對象序列化,RMI, Jini就是利用平臺無關性。把面向對象編程從虛擬機帶到了網絡上。

Java如何支持平臺無關性

Java從四個方面支持了平臺無關性

  1. 最主要的是Java平臺本身。Java平臺扮演Java程序和所在的硬件與操作系統之間的緩沖角色。這樣Java程序只需要與Java平臺打交道,而不用管具體的操作系統。

  2. Java語言保證了基本數據類型的值域和行為都是由語言自己定義的。而C/C++中,基本數據類是由它的占位寬度決定的,占位寬度由所在平臺決定的。不同平臺編譯同一個C++程序會出現不同的行為。通過保證基本數據類型在所有平臺的一致性,Java語言為平臺無關性提供強有力的支持。

  3. Java class文件。Java程序最終會被編譯成二進制class文件。class文件可以在任何平臺創建,也可以被任何平臺的Java虛擬機裝載運行。它的格式有著嚴格的定義,是平臺無關的。

  4. 可伸縮性。Sun通過改變API的方式得到三個基礎API集合,表現為Java平臺不同的伸縮性:J2EE,J2SE,J2ME。

影響Java平臺無關性的因素

  1. Java平臺的部署。運行Java程序之前,必須要部署好Java平臺。

  2. Java平臺的版本。Sun公司提供了不同的API集合,有標準版,擴展版等等。此外API本身也面臨著改動,一些API被認為是過期的,一些API甚至不向下兼容,因此我們需要選擇合適的Java平臺版本支持程序開發。

  3. 本地方法。當編寫一個平臺獨立的Java程序時候,最重要的原則是:不要直接或間接調用不屬于Java API的本地方法。調用Java API以外的本地方法使得程序平臺相關。一般而言,本地方法在三種情況適用:使用底層主機平臺的特性,而Java API無法訪問;為了訪問老系統或者使用現有的庫,但是這個系統或庫不是Java編寫的;為了加快程序性能,將時間敏感代碼用本地方法實現。因此當必須使用本地方法,而且支持多種平臺運行,必須將本地方法移植到所有需要的平臺上。因此編寫平臺獨立的Java程序做主要的目的就是完全禁止本地方法,通過Java API和主機交互。

  4. 非標準運行時庫。所謂平臺無關性,一種解釋是你調用的方法是否在任何地方都已經實現。本地方法顧名思義,就是只是在本地實現了,所以無法保證平臺無關。而Java API在如windows, Solaris等操作系統上的實現上使用了本地方法訪問主機,即保證了平臺無關。

  5. 對虛擬機的依賴。虛擬機可以由不同開發商開發,但是必須滿足如下兩條原則:不要依賴及時終結(finalization)保證程序的正確性,因為特定程序中對象可能在不同的時間被垃圾收集;不要依賴線程的優先級來保證程序的正確性。因為一些虛擬機可以實現優先級高線程優先運行,一些虛擬機不能保證這一點。

  6. 對用戶界面依賴,AWT庫提供基本的用戶界面,這些組件被映射成每個平臺上的本地組件,而Swing庫為用戶提供更高級的組件,但并沒有被映射為本地組件。

實現平臺無關的7大步驟

  1. 選擇程序運行的主機和設備集合(目標宿主機)

  2. 在目標宿主機中選擇Java平臺版本。

  3. 對于每個目標宿主機,選擇程序將要運行的Java平臺實現(目標運行時環境)。

  4. 編寫程序,調用Java API標準運行庫(不調用本地方法,或者專門開發商專門調用本地方法的庫)

  5. 編寫程序,不依賴于垃圾收集器收集垃圾時間,不依賴線程的優先級

  6. 努力設計用戶界面,在所有的目標宿主機都能正常工作

  7. 在所有目標運行時環境和所有目標宿主機進行測試

以上是“Java如何支持平臺無關性”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

钟山县| 历史| 秦皇岛市| 清水县| 衡阳县| 蓝田县| 青岛市| 太湖县| 邹城市| 澎湖县| 喀喇| 贡觉县| 错那县| 乐业县| 衢州市| 崇礼县| 洛隆县| 泉州市| 托里县| 且末县| 新宁县| 广水市| 博白县| 巴南区| 大石桥市| 久治县| 黎城县| 子洲县| 铁力市| 始兴县| 巨野县| 玛纳斯县| 沐川县| 阳东县| 泾阳县| 镇安县| 平南县| 北碚区| 绍兴市| 额敏县| 罗江县|