計算機(jī)高級語言程序的執(zhí)行方式可分為編譯型和解釋型兩種
一、編譯型語言
編譯型是指使用專門的編譯器哥纫,針對特定的平臺將
程序的源代碼一次性編譯成平臺能執(zhí)行的程序格式霉旗。編
譯生成的可執(zhí)行性程序可以脫離開發(fā)環(huán)境,獨立的運(yùn)行
在特定的平臺磺箕。因為編譯型語言程序是一次性編譯成特
定平臺的機(jī)器碼奖慌,所以編譯完成的機(jī)器碼通常不能移植
到其他平臺運(yùn)行,必須將源代碼復(fù)制到特定的平臺松靡,采
用特定平臺的編譯器重新編譯〖蛏現(xiàn)C C++ OC Pascal
等都是編譯型語言
二、解釋型語言
解釋型語言是指使用專門的解釋器對源程序逐行進(jìn)行
解釋成特定平臺的機(jī)器碼并立即執(zhí)行的語言雕欺〉郝恚可以認(rèn)
為每次執(zhí)行解釋性語言都要進(jìn)行一次編譯,因此解釋
型語言運(yùn)行效率通常較低屠列,也不能脫離解釋器獨立運(yùn)
行啦逆,現(xiàn)Ruby Python JavaScript等都是解釋型語言
三、java程序的運(yùn)行機(jī)制
java語言比較特殊笛洛,由于java 語言寫的程序需要經(jīng)過
編譯步驟夏志,但又 不會一次性生成特定平臺能執(zhí)行的
機(jī)器碼,而是生成一種與平臺無關(guān)的字節(jié)碼(.class
文件)這種字節(jié)碼不是可直接執(zhí)行的苛让,必須通過java
解釋器(JVM)來解釋執(zhí)行沟蔑。所以java語言可以說即是
編譯型又是解釋型語言。java程序必須經(jīng)過先編譯后
解釋兩個步驟狱杰。
四瘦材、Java 虛擬機(jī)(JVM)
Java 虛擬機(jī)(JVM)負(fù)責(zé)解釋執(zhí)行java程序編譯完的字
節(jié)碼(.class文件)。Java 編譯程序時生成的是與平臺
無關(guān)的字節(jié)碼仿畸,這些字節(jié)碼不面向任何特定的平臺食棕,
只面向JVM朗和。不同平臺上的JVM都不同,但他們都提
供了能解釋.class文件的接口簿晓,所以JVM是java 跨平
臺的關(guān)鍵部分眶拉。
注:文章摘抄于《Java瘋狂講義》。
五抢蚀、Android 平臺虛擬機(jī)
貼篇別人博客以便日后查閱http://blog.csdn.net/seu_calvin/article/details/52354964