編譯器是一種計(jì)算機(jī)程序,它會(huì)將某種編程語(yǔ)言寫成的源代碼轉(zhuǎn)換成另一種編程語(yǔ)言。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了固原免費(fèi)建站歡迎大家使用!
Java系統(tǒng)本身也具有很強(qiáng)的可移植性,Java編譯器是用Java實(shí)現(xiàn)的,Java的運(yùn)行環(huán)境是用ANSI C實(shí)現(xiàn)的。 Java語(yǔ)言是解釋型的。如前所述,Java程序在Java平臺(tái)上被編譯為字節(jié)碼格式, 然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。
java編譯器把java編譯成字節(jié)碼 也就是.class文件,然后JVM給編譯成的字節(jié)碼提供運(yùn)行環(huán)境。java的源代碼是無(wú)法直接在JVM上運(yùn)行的。
因?yàn)閖ava的跨平臺(tái)特性,java所謂的一次編譯,到處運(yùn)行,關(guān)鍵就是在于java的虛擬機(jī),也就是jvm,jvm只認(rèn)識(shí)字節(jié)碼,所以你寫好的java代碼就需要編譯成字節(jié)碼才能在jvm上運(yùn)行。
.java是以源文件形式存在,是編譯器和我們都可識(shí)別的語(yǔ)言。編譯器識(shí)別了.java文件后生成.class文件,是編譯器和計(jì)算機(jī)可識(shí)別的語(yǔ)言。
java語(yǔ)言在被設(shè)計(jì)的時(shí)候?yàn)槭裁磿?huì)加上編譯這一步,其實(shí)主要的考慮因素是性能,靜態(tài)語(yǔ)言的執(zhí)行效率比動(dòng)態(tài)語(yǔ)言要高得多。所以需要編譯。
Java 最初設(shè)計(jì)的時(shí)候,跨平臺(tái)就是一個(gè)重要的目標(biāo),所謂「一次編寫,到處運(yùn)行」。而為了實(shí)現(xiàn)跨平臺(tái),就決定了不能像 c,c++ 那樣直接把源代碼編譯成可執(zhí)行文件,因?yàn)椴煌琧pu,不同操作系統(tǒng)的指令封裝格式是不一樣的。
java編譯器的作用就是“編譯”,即 將java源代碼編譯成中間代碼字節(jié)碼文件。編譯時(shí),編譯器(java.exe)首先讀入 java 源代碼,然后進(jìn)行語(yǔ)法檢查,如果出現(xiàn)問(wèn)題就終止編譯。語(yǔ)法檢查通過(guò)后,生成中間代碼即字節(jié)碼。
java源代碼是用來(lái)關(guān)聯(lián)jar中的編譯代碼的。
JAVA源代碼需要先編譯成字節(jié)碼class文件。JAVA虛擬機(jī)類加載器 classloader 加載字節(jié)碼需要一步一步解釋執(zhí)行。
1、那說(shuō)明你編寫的.java文件還沒(méi)有編譯,要編譯成.class文件才能運(yùn)行。class文件是java虛擬機(jī)能識(shí)別的二進(jìn)制文件。
2、這是java編譯器把.java文件編譯后的文件格式,所有java代碼都要經(jīng)過(guò)java編譯器編譯以后java虛擬機(jī)才能運(yùn)行。要問(wèn)為什么這個(gè)就很難解答了,要好好研究javac底層代碼。
3、這是因?yàn)閖ava文件必須先編譯為class文件(通過(guò)javac命令編譯),之后才能執(zhí)行的。
本文標(biāo)題:java代碼為什么要編譯 為什么要自己編譯jdk
轉(zhuǎn)載來(lái)于:http://chinadenli.net/article25/dephgji.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、用戶體驗(yàn)、網(wǎng)站設(shè)計(jì)公司、動(dòng)態(tài)網(wǎng)站、虛擬主機(jī)、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)