国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

淺談Java平臺無(wú)關(guān)性

發(fā)布時(shí)間:2021-07-17 21:51 來(lái)源:腳本之家 閱讀:0 作者:簫筱沐羽 欄目: 編程語(yǔ)言 歡迎投稿:712375056

為什么Java要支持平臺無(wú)關(guān)性

眾所周知,Java是平臺無(wú)關(guān)的語(yǔ)言,那么Java為什么要支持平臺無(wú)關(guān)性,總結一下,有如下幾點(diǎn)

  1. 支持多變的網(wǎng)絡(luò )環(huán)境。如今是一個(gè)互聯(lián)網(wǎng)的時(shí)代,網(wǎng)絡(luò )將各種各樣的計算機和設備連接起來(lái),比如網(wǎng)絡(luò )連接了windows的PC機,UNIX工作站等等。為了保證程序能夠不加任何修改運行于網(wǎng)絡(luò )上的任何計算機,而不管計算機是什么種類(lèi),什么平臺,這樣就極大減輕了系統管理員的工作。尤其是程序是通過(guò)網(wǎng)絡(luò )環(huán)境進(jìn)行部署的。
  2. 支持網(wǎng)絡(luò )化嵌入式設備。目前工作場(chǎng)所中存在各種各樣的嵌入式設備,比如打印機,掃描儀,傳真機等。他們往往通過(guò)網(wǎng)絡(luò )連接起來(lái),甚至在家庭網(wǎng)絡(luò )和汽車(chē)內部也存在這樣那樣的嵌入式設備 。Java的平臺無(wú)關(guān)性可以簡(jiǎn)化這樣的系統管理任務(wù)。無(wú)論是哪個(gè)網(wǎng)絡(luò )的管理員,它只需關(guān)注程序本身即可。此外添加一臺新設備,可以立即被其他設備訪(fǎng)問(wèn)到,也可以訪(fǎng)問(wèn)其他設備。這都是平臺無(wú)關(guān)性帶來(lái)的好處。
  3. 減少開(kāi)發(fā)者部署程序的成本和時(shí)間。

對于開(kāi)發(fā)者而言, Java平臺無(wú)關(guān)的能力給予網(wǎng)絡(luò )一個(gè)同構的運行環(huán)境,使得分布式系統可以圍繞著(zhù)“網(wǎng)絡(luò )移動(dòng)對象”開(kāi)構建。比如對象序列化,RMI, Jini就是利用平臺無(wú)關(guān)性。把面向對象編程從虛擬機帶到了網(wǎng)絡(luò )上。

Java如何支持平臺無(wú)關(guān)性

Java從四個(gè)方面支持了平臺無(wú)關(guān)性

  1. 最主要的是Java平臺本身。Java平臺扮演Java程序和所在的硬件與操作系統之間的緩沖角色。這樣Java程序只需要與Java平臺打交道,而不用管具體的操作系統。
  2. Java語(yǔ)言保證了基本數據類(lèi)型的值域和行為都是由語(yǔ)言自己定義的。而C/C++中,基本數據類(lèi)是由它的占位寬度決定的,占位寬度由所在平臺決定的。不同平臺編譯同一個(gè)C++程序會(huì )出現不同的行為。通過(guò)保證基本數據類(lèi)型在所有平臺的一致性,Java語(yǔ)言為平臺無(wú)關(guān)性提供強有力的支持。
  3. Java class文件。Java程序最終會(huì )被編譯成二進(jìn)制class文件。class文件可以在任何平臺創(chuàng )建,也可以被任何平臺的Java虛擬機裝載運行。它的格式有著(zhù)嚴格的定義,是平臺無(wú)關(guān)的。
  4. 可伸縮性。Sun通過(guò)改變API的方式得到三個(gè)基礎API集合,表現為Java平臺不同的伸縮性:J2EE,J2SE,J2ME。

影響Java平臺無(wú)關(guān)性的因素

  1. Java平臺的部署。運行Java程序之前,必須要部署好Java平臺。
  2. Java平臺的版本。Sun公司提供了不同的API集合,有標準版,擴展版等等。此外API本身也面臨著(zhù)改動(dòng),一些API被認為是過(guò)期的,一些API甚至不向下兼容,因此我們需要選擇合適的Java平臺版本支持程序開(kāi)發(fā)。
  3. 本地方法。當編寫(xiě)一個(gè)平臺獨立的Java程序時(shí)候,最重要的原則是:不要直接或間接調用不屬于Java API的本地方法。調用Java API以外的本地方法使得程序平臺相關(guān)。一般而言,本地方法在三種情況適用:使用底層主機平臺的特性,而Java API無(wú)法訪(fǎng)問(wèn);為了訪(fǎng)問(wèn)老系統或者使用現有的庫,但是這個(gè)系統或庫不是Java編寫(xiě)的;為了加快程序性能,將時(shí)間敏感代碼用本地方法實(shí)現。因此當必須使用本地方法,而且支持多種平臺運行,必須將本地方法移植到所有需要的平臺上。因此編寫(xiě)平臺獨立的Java程序做主要的目的就是完全禁止本地方法,通過(guò)Java API和主機交互。
  4. 非標準運行時(shí)庫。所謂平臺無(wú)關(guān)性,一種解釋是你調用的方法是否在任何地方都已經(jīng)實(shí)現。本地方法顧名思義,就是只是在本地實(shí)現了,所以無(wú)法保證平臺無(wú)關(guān)。而Java API在如windows, Solaris等操作系統上的實(shí)現上使用了本地方法訪(fǎng)問(wèn)主機,即保證了平臺無(wú)關(guān)。
  5. 對虛擬機的依賴(lài)。虛擬機可以由不同開(kāi)發(fā)商開(kāi)發(fā),但是必須滿(mǎn)足如下兩條原則:不要依賴(lài)及時(shí)終結(finalization)保證程序的正確性,因為特定程序中對象可能在不同的時(shí)間被垃圾收集;不要依賴(lài)線(xiàn)程的優(yōu)先級來(lái)保證程序的正確性。因為一些虛擬機可以實(shí)現優(yōu)先級高線(xiàn)程優(yōu)先運行,一些虛擬機不能保證這一點(diǎn)。
  6. 對用戶(hù)界面依賴(lài),AWT庫提供基本的用戶(hù)界面,這些組件被映射成每個(gè)平臺上的本地組件,而Swing庫為用戶(hù)提供更高級的組件,但并沒(méi)有被映射為本地組件。

實(shí)現平臺無(wú)關(guān)的7大步驟

  1. 選擇程序運行的主機和設備集合(目標宿主機
  2. 在目標宿主機中選擇Java平臺版本。
  3. 對于每個(gè)目標宿主機,選擇程序將要運行的Java平臺實(shí)現(目標運行時(shí)環(huán)境)。
  4. 編寫(xiě)程序,調用Java API標準運行庫(不調用本地方法,或者專(zhuān)門(mén)開(kāi)發(fā)商專(zhuān)門(mén)調用本地方法的庫)
  5. 編寫(xiě)程序,不依賴(lài)于垃圾收集器收集垃圾時(shí)間,不依賴(lài)線(xiàn)程的優(yōu)先級
  6. 努力設計用戶(hù)界面,在所有的目標宿主機都能正常工作
  7. 在所有目標運行時(shí)環(huán)境和所有目標宿主機進(jìn)行測試

以上就是淺談Java平臺無(wú)關(guān)性的詳細內容,更多關(guān)于淺談Java平臺無(wú)關(guān)性的資料請關(guān)注腳本之家其它相關(guān)文章!

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

亚洲AV无码国产精品色午| 人妻免费视频公开上传| 久久久精品国产SM最大网站| 人妻少妇偷人精品无码| 中文字幕乱码无码人妻系列蜜桃| H漫在线观看|