<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    dream.in.java

    能以不變應萬變是聰明人做事的準則。萬事從小事做起,積累小成功,問鼎大成功,是成功者的秘訣。

    Java的開發運行環境

    第1章 Java的開發運行環境
    學好Java最重要的一個步驟就是上機編程,熟悉Java的開發運行環境是成為Java程序員的第一步。本章將詳細介紹如何安裝并配置好Sun公司提供的JDK1.5 for Windows,如何編制一個簡單的Java程序,如何編譯一個Java源程序,如何運行編譯好的class文件以及如何避免初學者常犯的錯誤。通過本章的學習,將輕松地邁入Java的殿堂。
    1.1 Java的運行環境與虛擬機
    任何一個可執行文件,都必須在某個平臺上才能運行。例如,Windows下的exe文件,必須在Windows環境下、X86硬件平臺上才能運行。這些exe文件,通常是使用C/C++、Pascal或VB等語言編程,然后通過編譯、鏈接而形成的。在這些可執行文件中,包含了運行它的硬件平臺的相關信息,所以如果要把它移植到其他平臺上,必須要重新編譯,甚至要修改源文件。
    Java和這些語言不同,它的最大特點就是平臺無關性。Java文件經編譯后,生成的是一個后綴名為class的文件。這是一種字節碼文件,它不像普通可執行文件那樣包含硬件信息,而是完全與硬件平臺無關,也就是無法直接由操作系統調用運行。所以Java的應用程序,需要一個更為復雜的平臺才能運行。這個運行平臺,包括計算機操作系統、適配器、Java虛擬機、Java基本軟件和Java應用程序接口,它們負責將Java的字節碼翻譯成硬件可以接受的指令。整個運行系統的結構如圖1.1所示。

    圖1.1 Java運行系統
    Java運行系統執行Java應用程序的過程包括三個步驟:首先是代碼的裝入,然后是代碼的驗證,最后是代碼的執行。
    代碼的裝入由類裝配器完成,它主要負責裝入程序運行時所需要的全部代碼,包括程序運行中調用到的其他類。當類裝配器裝入一個類后,該類被放在自己的命名空間中,除了通過符號引用其他類之外,該類不能影響其他類所在的空間。當裝入了運行程序所需要的所有類后,運行系統就能確定整個可執行程序的內存布局。
    然后,被裝入的代碼將由字節碼驗證器進行安全檢查,以確保字節代碼不存在違反訪問權限、不規范的數據類型和非法調用等問題。
    通過校驗之后,代碼就可以運行了。Java的字節碼有兩種運行方式:
    ?    解釋執行方式:通過“解釋器”,將字節碼翻譯成機器碼,然后由“運行支持庫”將機器碼送往硬件執行。整個執行過程是一邊翻譯一邊執行,稱為解釋執行。Java系統一般采用這種方式。
    ?    即時編譯方式:通過“代碼生成器”,先一次性地將所有字節碼翻譯成適用于特定計算機系統的機器碼,然后送往硬件執行。對程序運行速度要求較高時,一般采用這種方式。
    從圖1.1可以看出,Java的字節碼并沒有直接運行在硬件平臺上,而是在一個虛擬的軟件平臺上運行。這個虛擬的軟件平臺,被稱為Java虛擬機(Java Virtual Machine,JVM)。為了讓編譯產生的字節碼可以更好地解釋與執行,通常把JVM分成6個功能模塊:JVM解釋器、指令系統、寄存器、棧、存儲區和碎片回收區。
    ?    JVM解釋器:JVM解釋器負責將字節碼轉換成為CPU能執行的機器指令。
    ?    指令系統:指令系統同硬件計算機很相似。一條指令分成操作碼和操作數兩部分。操作碼為8位二進制數,操作數可以根據需要而定。操作碼是為了說明一條指令的功能,所以JVM可以有多達256種不同的操作指令。
    ?    寄存器:JVM有自己的虛擬寄存器,這樣就可以快速地和JVM的解釋器進行數據交換。為了實現必需的功能,JVM設置了4個常用的32位寄存器:pc(程序計數器)、optop(操作數棧頂指針)、frame(當前執行環境指針)和vars(指向當前執行環境中第一個局部變量的指針)。
    ?    棧:JVM棧是指令執行時數據和信息存儲的場所和控制中心,它提供給JVM解釋器運算時所需要的信息。
    ?    存儲區:JVM存儲區用于存儲編譯后的字節碼等信息。
    ?    碎片回收區:JVM碎片回收,是指將那些使用后的Java類的具體實例從內存中進行回收。因此,可以避免開發人員自己編程控制內存的麻煩。隨著JVM的不斷升級,其碎片回收技術和算法也更加合理。比較經典的算法有引用計數、復制、標記-清除和標記-整理。在JVM 1.4.1版以后,產生了一種代收集技術。簡單地說,就是利用對象在程序中生存的時間劃分成代,以這個代為標準進行碎片回收。
    ?說明:JVM的運用,真正讓Java實現了“一次編譯,處處運行”,它是整個運行系統的核心

    posted on 2009-03-14 15:40 YXY 閱讀(243) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 久久精品夜色国产亚洲av| 91麻豆精品国产自产在线观看亚洲 | 国内永久免费crm系统z在线| 久久久久亚洲AV无码专区桃色| 全黄A免费一级毛片| 亚洲国产精品一区二区第四页| 成人午夜免费视频| 国产福利电影一区二区三区,亚洲国模精品一区 | 久久午夜夜伦鲁鲁片无码免费| 精品亚洲综合在线第一区| 亚洲一区二区三区久久| 久久福利资源网站免费看| 四虎永久在线精品免费影视| 久久精品九九亚洲精品天堂| 久久久精品免费视频| 最近最新的免费中文字幕| 亚洲乱码无人区卡1卡2卡3| 国产又粗又猛又爽又黄的免费视频 | 美女被免费网站91色| 亚洲AV无码久久精品狠狠爱浪潮 | 在线精品自拍亚洲第一区| 一本色道久久88亚洲综合| 亚洲国语在线视频手机在线| 中文字幕乱码系列免费| 国产精品99久久免费| 国产特黄一级一片免费| 亚洲精品视频在线| 毛片高清视频在线看免费观看| 免费播放美女一级毛片| 亚洲AV综合色区无码一区爱AV | 亚洲精品卡2卡3卡4卡5卡区| 91久久精品国产免费直播| 亚洲免费综合色在线视频| 国产亚洲av片在线观看18女人| 无码中文字幕av免费放dvd| 亚洲男人天堂2018av| 最近中文字幕免费mv在线视频| 亚洲依依成人亚洲社区| 中文字幕亚洲不卡在线亚瑟| 日韩亚洲国产高清免费视频| 亚洲国产人成在线观看69网站 |