成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java程序運(yùn)行機(jī)制

Pink / 946人閱讀

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

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

高級(jí)語言的運(yùn)行機(jī)制

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

編譯型語言

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

解釋型語言

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

Java程序的運(yùn)行機(jī)制和JVM

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

編譯Java程序

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

javac -d destdir srcFile

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

運(yùn)行Java程序
java java類名

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

找不到或無法加載主類

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/68525.html

相關(guān)文章

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

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

    wangshijun 評(píng)論0 收藏0
  • java入門

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

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

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

    yearsj 評(píng)論0 收藏0
  • Java001-流行的編程語言Java

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

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

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

    enda 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<