摘要:程序的運行機制和語言比較特殊,由語言編寫的程序需要經過編譯步驟,但這個編譯步驟并不會生成特定平臺的機器碼,而是生成一種與平臺無關的字節碼文件。語言里負責解釋執行字節碼文件的是虛擬機。
Java語言是一種特殊的高級語言,它既具有解釋性語言的特征,也具有編譯型語言的特征,因為Java程序要經過先編譯,后解釋兩個步驟。
高級語言的運行機制計算機高級語言按程序的執行方式可以分為編譯型和解釋型兩種。
編譯型語言編譯型語言是指使用專門的編譯器,針對特定平臺將某種高級語言源代碼一次性翻譯成可被該平臺硬件執行的機器碼,并包裝成該平臺所能識別的可執行性程序的格式,這個轉換過程稱為編譯。編譯生成的可執行性程序可以脫離開發環境,在特定平臺上獨立運行。
有些代碼編譯結束后,還可能需要對其他編譯好的目標代碼進行鏈接,即組裝兩個以上的目標代碼模塊生成最終可執行性程序,通過這種方式實現低層次的代碼復用。
解釋型語言是指使用專門的解釋器對源程序逐行解釋成特定平臺的機器碼并立即執行的語言。解釋性語言通常不會進行整體的編譯和鏈接處理,解釋性語言相當于把編譯型語言中的編譯和解釋過程混合到一起同時完成。
Java程序的運行機制和JVMJava語言比較特殊,由Java語言編寫的程序需要經過編譯步驟,但這個編譯步驟并不會生成特定平臺的機器碼,而是生成一種與平臺無關的字節碼(.class文件)。當然,這種字節碼不是可執行的,必須使用java解釋器來執行。
Java語言里負責解釋執行字節碼文件的是Java虛擬機。所有平臺上的JVM向編譯器提供相同的編程接口,而編譯器只需要面向虛擬機,生成虛擬機能理解的代碼,然后虛擬機來解釋執行。
JVM是一個抽象的計算機,和實際的計算機一樣,它具有指令集并使用不同的存儲區域。它負責執行指令,還要管理數據。內存和寄存器。
編譯Java程序需要使用javac命令,因為已經把javac命令所在路徑添加到系統的PATH環境變量中,因此現在可以使用javac命令來編譯java程序了。
javac -d destdir srcFile
通過上述命令就可以把.java文件編譯成.class文件。需要注意的是,如果省略-d參數,編譯后的.class文件會被編譯在當前路徑,如果加了-d指定目錄則會編譯在-d指定目錄外加.java文件中指定的包名中。
運行Java程序java java類名
需要注意的是,java命令后面的參數是Java類名,而不是字節碼文件的文件名,也不是Java源文件名(即不需要.class后綴)。
需要注意的是假若在源代碼java文件中加了包名,執行的時候要把包名帶上,否則系統會會報錯:
找不到或無法加載主類
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/68525.html
摘要:一次性編譯成機器碼,脫離開發環境獨立運行,運行效率較高。解釋型語言使用專門的解釋器對源程序逐行解釋成特定平臺的機器碼并立即執行的語言。垃圾回收機制保護程序的完整性,垃圾回收是語言安全性策略的一個重要部分。 Java程序運行機制 編譯型語言 使用專門的編譯器,針對特定平臺(操作系統)將某種高級語言源代碼一次性翻譯成可被該平臺硬件執行的機器碼(包括機器指令和操作數),并包裝成該平臺所能識...
摘要:包含了支持服務開發的類,并為提供基礎,如語言基礎操作操作網絡通信以及多線程等技術。在運行文件時,的解釋器對這些字節碼進行解釋執行,執行過程中需要加入的類在連接階段被載入到運行環境中。支持多個線程同時執行,并提供多線程之間的同步機制。 1.什么是Java語言 簡單地說,Java 是由 Sun Microsystems 公司于 1995 年推出的一門面向對象程序設計語言。2009 年 Or...
摘要:與都繼承自類,在中也是使用字符數組保存字符串,,這兩種對象都是可變的。采用字節碼的好處語言通過字節碼的方式,在一定程度上解決了傳統解釋型語言執行效率低的問題,同時又保留了解釋型語言可移植的特點。 String和StringBuffer、StringBuilder的區別是什么?String為什么是不可變的? String和StringBuffer、StringBuilder的區別 可變性...
摘要:流行的編程語言是一項用于開發應用程序的技術,可以讓變得更有意思和更實用。年月,由于甲骨文對于社區的不友善,因此揚言將退出。在運行時,平臺中的解釋器對這些字節碼進行解釋執行,執行過程中需要的類在聯接階段被載入到運行環境中。 流行的編程語言Java Java 是一項用于開發應用程序的技術,可以讓 Web 變得更有意思和更實用。 Java 與 javascript 并不相同,后者是一種用于創...
摘要:所幸,提供了一套機制,用于在程序程序出錯出現異常時,進行報告錯誤保存工作結果讓用戶以更完善的方式退出程序亦即異常處理機制。顧名思義,該機制用于對程序運行中不正常的情況進行處理。如拋出比更加語義化學會把異常傳遞,即早拋出,晚捕獲 初識 代碼的世界和現實世界一樣,不會一帆風順,起碼不會像我們想象中的那么順利。寫代碼的是人,人的思維存在局限性,這種局限性,體現在代碼中,就是漏洞。倘若一段程序...
閱讀 1512·2021-11-24 09:38
閱讀 3366·2021-11-18 10:02
閱讀 3253·2021-09-22 15:29
閱讀 2937·2021-09-22 15:15
閱讀 1037·2021-09-13 10:25
閱讀 1833·2021-08-17 10:13
閱讀 1971·2021-08-04 11:13
閱讀 1973·2019-08-30 15:54