最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談Java平臺無關性

 更新時間:2021年04月22日 14:35:17   作者:簫筱沐羽  
這篇文章主要介紹了淺談Java平臺無關性,對此感興趣的同學,可以多了解一下

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

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

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

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

Java如何支持平臺無關性

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

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

影響Java平臺無關性的因素

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

實現(xiàn)平臺無關的7大步驟

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

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

相關文章

  • Java使用modbus4j實現(xiàn)modbus?tcp通訊

    Java使用modbus4j實現(xiàn)modbus?tcp通訊

    Modbus是由Modicon(現(xiàn)為施耐德電氣公司的一個品牌)在1979年發(fā)明的,是全球第一個真正用于工業(yè)現(xiàn)場的總線協(xié)議,本文主要介紹了java如何使用modbus4j實現(xiàn)modbus?tcp通訊,感興趣的可以了解下
    2023-12-12
  • JAVA開發(fā)常用類庫UUID、Optional、ThreadLocal、TimerTask、Base64使用方法與實例詳解

    JAVA開發(fā)常用類庫UUID、Optional、ThreadLocal、TimerTask、Base64使用方法與實例詳

    這篇文章主要介紹了JAVA開發(fā)常用類庫UUID、Optional、ThreadLocal、TimerTask、Base64使用方法與實例詳解,需要的朋友可以參考下
    2020-02-02
  • java獲取兩個數(shù)組中不同數(shù)據(jù)的方法

    java獲取兩個數(shù)組中不同數(shù)據(jù)的方法

    這篇文章主要介紹了java獲取兩個數(shù)組中不同數(shù)據(jù)的方法,實例分析了java操作數(shù)組的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-03-03
  • 通過Spring AOP實現(xiàn)異常捕捉機制

    通過Spring AOP實現(xiàn)異常捕捉機制

    在開發(fā)過程中,異常處理是一個不可忽視的重要環(huán)節(jié),合理、優(yōu)雅地處理異常不僅能提高代碼的魯棒性,還能提升系統(tǒng)的用戶體驗,本文將介紹如何通過Spring AOP實現(xiàn)一個高效的異常捕捉機制,使得異常處理變得更加優(yōu)雅和統(tǒng)一,需要的朋友可以參考下
    2024-08-08
  • Maven下 mybatis-generator使用

    Maven下 mybatis-generator使用

    這篇文章主要介紹了Maven下 mybatis-generator使用 ,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • 基于parameters參數(shù)實現(xiàn)參數(shù)化過程解析

    基于parameters參數(shù)實現(xiàn)參數(shù)化過程解析

    這篇文章主要介紹了基于parameters參數(shù)實現(xiàn)參數(shù)化過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • 解析Spring Boot 如何讓你的 bean 在其他 bean 之前完成加載

    解析Spring Boot 如何讓你的 bean 在其他 bean&n

    在 SpringBoot 中如何讓自己的某個指定的 Bean 在其他 Bean 前完成被 Spring 加載?我聽到這個問題的第一反應是,為什么會有這樣奇怪的需求?下面小編給大家分析下Spring Boot 如何讓你的 bean 在其他 bean 之前完成加載 ,感興趣的朋友一起看看吧
    2024-01-01
  • spring?IOC容器的Bean管理XML自動裝配過程

    spring?IOC容器的Bean管理XML自動裝配過程

    這篇文章主要為大家介紹了spring?IOC容器Bean管理基于XML的自動裝配過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Springboot之日志、配置文件、接口數(shù)據(jù)如何脫敏

    Springboot之日志、配置文件、接口數(shù)據(jù)如何脫敏

    本文主要介紹了Springboot之配置文件數(shù)據(jù)脫敏、接口返回數(shù)據(jù)脫敏、日志文件數(shù)據(jù)脫敏三個方面,需要了解學習的小伙伴快跟隨小編的腳步一起去看看吧
    2021-09-09
  • Java8排序stream.sorted()的使用

    Java8排序stream.sorted()的使用

    這篇文章主要介紹了Java8排序stream.sorted()的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03

最新評論

库车县| 晋州市| 乐山市| 巴南区| 汉源县| 客服| 沭阳县| 济宁市| 连平县| 宁强县| 巩义市| 衡阳县| 城口县| 名山县| 进贤县| 永寿县| 岢岚县| 滦平县| 高阳县| 西吉县| 固原市| 郧西县| 晋江市| 池州市| 厦门市| 怀远县| 乌拉特中旗| 乐至县| 河间市| 铅山县| 凭祥市| 阳信县| 金山区| 和田市| 凌源市| 海门市| 慈利县| 四子王旗| 中卫市| 阿城市| 镇坪县|