java源代碼轉(zhuǎn)換字節(jié)碼 java源文件編譯為字節(jié)碼

javac是什么?

javac是Java編譯器,負責將Java源代碼轉(zhuǎn)換成字節(jié)碼文件。

按需策劃設(shè)計可以根據(jù)自己的需求進行定制,網(wǎng)站建設(shè)、成都做網(wǎng)站構(gòu)思過程中功能建設(shè)理應(yīng)排到主要部位公司網(wǎng)站建設(shè)、成都做網(wǎng)站的運用實際效果公司網(wǎng)站制作網(wǎng)站建立與制做的實際意義

javac 可以隱式編譯一些沒有在命令行中提及的源文件。用 -verbose 選項可跟蹤自動編譯。當編譯源文件時,編譯器常常需要它還沒有識別出的類型的有關(guān)信息。

javac的特點

javac具有簡單性、面向?qū)ο?、分布性、解釋性、可靠、安全、平臺無關(guān)、可移植性、高性能、多線程、動態(tài)性等特點。提供了異常處理機制,程序員可以把錯誤代碼放在一起,這樣可以簡化錯誤處理任務(wù),便于恢復(fù)。不支持指針,杜絕了內(nèi)存的非法訪問。

北大青鳥java培訓(xùn):字節(jié)碼指令的編譯與執(zhí)行?

java編程開發(fā)是目前市場上使用范圍非常廣泛的一種編程開發(fā)語言。

今天我們就一起來了解一下,在java編程中關(guān)于字節(jié)碼的一些指令的編譯與執(zhí)行方法。

java文件編譯后的class文件,java跨平臺的中間層,JVM通過對字節(jié)碼的解釋執(zhí)行(執(zhí)行模式,還有JIT編譯執(zhí)行,下面講解),屏蔽對操作系統(tǒng)的依賴。

一個字節(jié)(8位)可以儲存256中不同的指令,這樣的指令就是字節(jié)碼,java所有指令有200個左右,這些指令組成了字節(jié)碼文件(.class)。

一、字節(jié)碼的主要指令:.class文件里面的十六進制文件,其中CAFEBABE是標志這個文件為java的編譯后的文件,00000034代表版本號,01670700一個字節(jié)(8位)就是一個字節(jié)指令,由于數(shù)值指令太難看懂,我們可以用javap將指令翻譯為助記指令。

1、加載或儲存指令在棧幀中,通過指令操作數(shù)據(jù)在局部變量表與操作棧間傳遞。

ILOAD、ALOAD:將int、對象引用類型從局部變量表壓入操作棧頂;ISTORE、ASTORE:將int、對象引用類型從操作棧頂儲存到局部變量表里;ICONST、BIPUSH、SIPUSH、LDC:將常亮加載到操作棧頂。

2、運算指令對操作棧上的值進行運算,并把結(jié)果寫入操作棧頂,如IADD、IMUL。

3、類型轉(zhuǎn)換指令I(lǐng)2L、D2F4、對象創(chuàng)建與訪問指令NEW除了字節(jié)碼指令外,湖北電腦培訓(xùn)認為還包括像LINENUMBER儲存字節(jié)碼與源碼對應(yīng),方便調(diào)試定位;LOCALVARIABLE儲存當前方法使用到的局部表量表。

二、java源碼文件轉(zhuǎn)化為字節(jié)碼(.class)文件的過程JAVA源文件----------詞法解析----------語法解析----------語義分析---------生成字節(jié)碼---------字節(jié)碼文件詞法分析:根據(jù)空格分割出單詞、操作符等,形成token信息流;語法分析:根據(jù)token流和java語法規(guī)范生成語法樹;語義分析:檢查關(guān)鍵字、類型匹配是否正確;

java程序編譯后會產(chǎn)生字節(jié)碼還是機器碼?

java編譯后的是字節(jié)碼。

字節(jié)碼,為java源代碼編譯完成后,由JVM轉(zhuǎn)換成的文件,可以在任何裝有JVM的系統(tǒng)上,轉(zhuǎn)化相應(yīng)的機器語言。

機器碼:即機器語言,表示的就是運行字節(jié)碼文件后的二進制序列。

網(wǎng)站欄目:java源代碼轉(zhuǎn)換字節(jié)碼 java源文件編譯為字節(jié)碼
路徑分享:http://bm7419.com/article28/ddeppjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、動態(tài)網(wǎng)站、網(wǎng)站排名外貿(mào)建站、企業(yè)網(wǎng)站制作網(wǎng)頁設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)