国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java程序運行機制

Pink / 927人閱讀

摘要:程序的運行機制和語言比較特殊,由語言編寫的程序需要經(jīng)過編譯步驟,但這個編譯步驟并不會生成特定平臺的機器碼,而是生成一種與平臺無關(guān)的字節(jié)碼文件。語言里負責(zé)解釋執(zhí)行字節(jié)碼文件的是虛擬機。

Java語言是一種特殊的高級語言,它既具有解釋性語言的特征,也具有編譯型語言的特征,因為Java程序要經(jīng)過先編譯,后解釋兩個步驟。

高級語言的運行機制

計算機高級語言按程序的執(zhí)行方式可以分為編譯型和解釋型兩種。

編譯型語言

編譯型語言是指使用專門的編譯器,針對特定平臺將某種高級語言源代碼一次性翻譯成可被該平臺硬件執(zhí)行的機器碼,并包裝成該平臺所能識別的可執(zhí)行性程序的格式,這個轉(zhuǎn)換過程稱為編譯。編譯生成的可執(zhí)行性程序可以脫離開發(fā)環(huán)境,在特定平臺上獨立運行。
有些代碼編譯結(jié)束后,還可能需要對其他編譯好的目標代碼進行鏈接,即組裝兩個以上的目標代碼模塊生成最終可執(zhí)行性程序,通過這種方式實現(xiàn)低層次的代碼復(fù)用。

解釋型語言

解釋型語言是指使用專門的解釋器對源程序逐行解釋成特定平臺的機器碼并立即執(zhí)行的語言。解釋性語言通常不會進行整體的編譯和鏈接處理,解釋性語言相當于把編譯型語言中的編譯和解釋過程混合到一起同時完成。

Java程序的運行機制和JVM

Java語言比較特殊,由Java語言編寫的程序需要經(jīng)過編譯步驟,但這個編譯步驟并不會生成特定平臺的機器碼,而是生成一種與平臺無關(guān)的字節(jié)碼(.class文件)。當然,這種字節(jié)碼不是可執(zhí)行的,必須使用java解釋器來執(zhí)行。
Java語言里負責(zé)解釋執(zhí)行字節(jié)碼文件的是Java虛擬機。所有平臺上的JVM向編譯器提供相同的編程接口,而編譯器只需要面向虛擬機,生成虛擬機能理解的代碼,然后虛擬機來解釋執(zhí)行。
JVM是一個抽象的計算機,和實際的計算機一樣,它具有指令集并使用不同的存儲區(qū)域。它負責(zé)執(zhí)行指令,還要管理數(shù)據(jù)。內(nèi)存和寄存器。

編譯Java程序

編譯Java程序需要使用javac命令,因為已經(jīng)把javac命令所在路徑添加到系統(tǒng)的PATH環(huán)境變量中,因此現(xiàn)在可以使用javac命令來編譯java程序了。

javac -d destdir srcFile

通過上述命令就可以把.java文件編譯成.class文件。需要注意的是,如果省略-d參數(shù),編譯后的.class文件會被編譯在當前路徑,如果加了-d指定目錄則會編譯在-d指定目錄外加.java文件中指定的包名中。

運行Java程序
java java類名

需要注意的是,java命令后面的參數(shù)是Java類名,而不是字節(jié)碼文件的文件名,也不是Java源文件名(即不需要.class后綴)。
需要注意的是假若在源代碼java文件中加了包名,執(zhí)行的時候要把包名帶上,否則系統(tǒng)會會報錯:

找不到或無法加載主類

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/68525.html

相關(guān)文章

  • Java 語言概述與開發(fā)環(huán)境

    摘要:一次性編譯成機器碼,脫離開發(fā)環(huán)境獨立運行,運行效率較高。解釋型語言使用專門的解釋器對源程序逐行解釋成特定平臺的機器碼并立即執(zhí)行的語言。垃圾回收機制保護程序的完整性,垃圾回收是語言安全性策略的一個重要部分。 Java程序運行機制 編譯型語言 使用專門的編譯器,針對特定平臺(操作系統(tǒng))將某種高級語言源代碼一次性翻譯成可被該平臺硬件執(zhí)行的機器碼(包括機器指令和操作數(shù)),并包裝成該平臺所能識...

    wangshijun 評論0 收藏0
  • java入門

    摘要:包含了支持服務(wù)開發(fā)的類,并為提供基礎(chǔ),如語言基礎(chǔ)操作操作網(wǎng)絡(luò)通信以及多線程等技術(shù)。在運行文件時,的解釋器對這些字節(jié)碼進行解釋執(zhí)行,執(zhí)行過程中需要加入的類在連接階段被載入到運行環(huán)境中。支持多個線程同時執(zhí)行,并提供多線程之間的同步機制。 1.什么是Java語言 簡單地說,Java 是由 Sun Microsystems 公司于 1995 年推出的一門面向?qū)ο蟪绦蛟O(shè)計語言。2009 年 Or...

    zhangfaliang 評論0 收藏0
  • 最最最常見的Java面試題總結(jié)——第二周

    摘要:與都繼承自類,在中也是使用字符數(shù)組保存字符串,,這兩種對象都是可變的。采用字節(jié)碼的好處語言通過字節(jié)碼的方式,在一定程度上解決了傳統(tǒng)解釋型語言執(zhí)行效率低的問題,同時又保留了解釋型語言可移植的特點。 String和StringBuffer、StringBuilder的區(qū)別是什么?String為什么是不可變的? String和StringBuffer、StringBuilder的區(qū)別 可變性...

    yearsj 評論0 收藏0
  • Java001-流行的編程語言Java

    摘要:流行的編程語言是一項用于開發(fā)應(yīng)用程序的技術(shù),可以讓變得更有意思和更實用。年月,由于甲骨文對于社區(qū)的不友善,因此揚言將退出。在運行時,平臺中的解釋器對這些字節(jié)碼進行解釋執(zhí)行,執(zhí)行過程中需要的類在聯(lián)接階段被載入到運行環(huán)境中。 流行的編程語言Java Java 是一項用于開發(fā)應(yīng)用程序的技術(shù),可以讓 Web 變得更有意思和更實用。 Java 與 javascript 并不相同,后者是一種用于創(chuàng)...

    duan199226 評論0 收藏0
  • 【從基礎(chǔ)學(xué) Java】異常機制

    摘要:所幸,提供了一套機制,用于在程序程序出錯出現(xiàn)異常時,進行報告錯誤保存工作結(jié)果讓用戶以更完善的方式退出程序亦即異常處理機制。顧名思義,該機制用于對程序運行中不正常的情況進行處理。如拋出比更加語義化學(xué)會把異常傳遞,即早拋出,晚捕獲 初識 代碼的世界和現(xiàn)實世界一樣,不會一帆風(fēng)順,起碼不會像我們想象中的那么順利。寫代碼的是人,人的思維存在局限性,這種局限性,體現(xiàn)在代碼中,就是漏洞。倘若一段程序...

    enda 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<