色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:7日期:2022-08-14 08:12:13
為什么Java要支持平臺無關(guān)性

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

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

對于開發(fā)者而言, Java平臺無關(guān)的能力給予網(wǎng)絡一個同構(gòu)的運行環(huán)境,使得分布式系統(tǒng)可以圍繞著“網(wǎng)絡移動對象”開構(gòu)建。比如對象序列化,RMI, Jini就是利用平臺無關(guān)性。把面向?qū)ο缶幊虖奶摂M機帶到了網(wǎng)絡上。

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

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

最主要的是Java平臺本身。Java平臺扮演Java程序和所在的硬件與操作系統(tǒng)之間的緩沖角色。這樣Java程序只需要與Java平臺打交道,而不用管具體的操作系統(tǒng)。 Java語言保證了基本數(shù)據(jù)類型的值域和行為都是由語言自己定義的。而C/C++中,基本數(shù)據(jù)類是由它的占位寬度決定的,占位寬度由所在平臺決定的。不同平臺編譯同一個C++程序會出現(xiàn)不同的行為。通過保證基本數(shù)據(jù)類型在所有平臺的一致性,Java語言為平臺無關(guān)性提供強有力的支持。 Java class文件。Java程序最終會被編譯成二進制class文件。class文件可以在任何平臺創(chuàng)建,也可以被任何平臺的Java虛擬機裝載運行。它的格式有著嚴格的定義,是平臺無關(guān)的。 可伸縮性。Sun通過改變API的方式得到三個基礎API集合,表現(xiàn)為Java平臺不同的伸縮性:J2EE,J2SE,J2ME。影響Java平臺無關(guān)性的因素 Java平臺的部署。運行Java程序之前,必須要部署好Java平臺。 Java平臺的版本。Sun公司提供了不同的API集合,有標準版,擴展版等等。此外API本身也面臨著改動,一些API被認為是過期的,一些API甚至不向下兼容,因此我們需要選擇合適的Java平臺版本支持程序開發(fā)。 本地方法。當編寫一個平臺獨立的Java程序時候,最重要的原則是:不要直接或間接調(diào)用不屬于Java API的本地方法。調(diào)用Java API以外的本地方法使得程序平臺相關(guān)。一般而言,本地方法在三種情況適用:使用底層主機平臺的特性,而Java API無法訪問;為了訪問老系統(tǒng)或者使用現(xiàn)有的庫,但是這個系統(tǒng)或庫不是Java編寫的;為了加快程序性能,將時間敏感代碼用本地方法實現(xiàn)。因此當必須使用本地方法,而且支持多種平臺運行,必須將本地方法移植到所有需要的平臺上。因此編寫平臺獨立的Java程序做主要的目的就是完全禁止本地方法,通過Java API和主機交互。 非標準運行時庫。所謂平臺無關(guān)性,一種解釋是你調(diào)用的方法是否在任何地方都已經(jīng)實現(xiàn)。本地方法顧名思義,就是只是在本地實現(xiàn)了,所以無法保證平臺無關(guān)。而Java API在如windows, Solaris等操作系統(tǒng)上的實現(xiàn)上使用了本地方法訪問主機,即保證了平臺無關(guān)。 對虛擬機的依賴。虛擬機可以由不同開發(fā)商開發(fā),但是必須滿足如下兩條原則:不要依賴及時終結(jié)(finalization)保證程序的正確性,因為特定程序中對象可能在不同的時間被垃圾收集;不要依賴線程的優(yōu)先級來保證程序的正確性。因為一些虛擬機可以實現(xiàn)優(yōu)先級高線程優(yōu)先運行,一些虛擬機不能保證這一點。 對用戶界面依賴,AWT庫提供基本的用戶界面,這些組件被映射成每個平臺上的本地組件,而Swing庫為用戶提供更高級的組件,但并沒有被映射為本地組件。實現(xiàn)平臺無關(guān)的7大步驟 選擇程序運行的主機和設備集合(目標宿主機) 在目標宿主機中選擇Java平臺版本。 對于每個目標宿主機,選擇程序?qū)⒁\行的Java平臺實現(xiàn)(目標運行時環(huán)境)。 編寫程序,調(diào)用Java API標準運行庫(不調(diào)用本地方法,或者專門開發(fā)商專門調(diào)用本地方法的庫) 編寫程序,不依賴于垃圾收集器收集垃圾時間,不依賴線程的優(yōu)先級 努力設計用戶界面,在所有的目標宿主機都能正常工作 在所有目標運行時環(huán)境和所有目標宿主機進行測試

以上就是淺談Java平臺無關(guān)性的詳細內(nèi)容,更多關(guān)于淺談Java平臺無關(guān)性的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標簽: Java
相關(guān)文章:
主站蜘蛛池模板: 久草在线视频网 | 欧美性色xo影院在线观看 | 一区二区三区日韩 | 免费视频观看在线www日本 | 99久久免费精品视频 | 日本在线观看不卡免费视频 | 草草视频在线观看最新 | 亚洲国产天堂久久综合图区 | 日本在线观看免费看片 | 国产美女三级做爰 | 毛片毛片毛是个毛毛片 | 成人性欧美丨区二区三区 | 欧美人成片免费看视频不卡 | 中文字幕亚洲在线 | 久久精品国产99国产精品 | 久久色婷婷 | 亚洲欧美国产日韩天堂在线视 | 国产在线极品 | 免费精品久久 | 国产成人高清在线观看播放 | 亚洲免费专区 | 亚洲精品专区一区二区三区 | 一区毛片| 热e国产| 成人亚洲欧美日韩中文字幕 | 国产精品3 | 美女扒开双腿让男人爽透视频 | 97视频免费公开成人福利 | 最新国产三级 | 欧美激情精品久久久久久久九九九 | 精品日本一区二区三区在线观看 | 国产人做人爱视频精品 | 欧美三级三级三级爽爽爽 | 激情欧美日韩一区二区 | 在线国产一区 | 精品亚洲一区二区 | 91资源在线观看 | 国产一级片视频 | 久久久久久久久影院 | 亚洲精品男人天堂 | 日本韩国欧美一区 |