當前位置:首頁 » 編程軟體 » 位元組碼可以編譯嗎

位元組碼可以編譯嗎

發布時間: 2023-05-28 08:18:04

『壹』 java編譯後產生 位元組碼,還是 機器碼能不能簡單解釋一下

java虛擬機是可運行java位元組碼的假象計算機 java的跨平台性也是相對與其他編程語言而言的
先介紹一下c語言的編譯過程吧
先是C語言源程序也就是。c的文件
經過C編譯程序編譯後生成windows可執行文件exe文件
然後在windows中執行。。
再介紹java的編譯過程
先是java源程序 擴展名為。java的文件
由java編譯程序將java位元組碼文件 就是class文件
然後在java虛擬機中執行。。

『貳』 位元組碼指令的編譯與執行

java編程開發是目前市場上使用范圍非常廣泛的一種編程開發語言。今天我們就一起來了解一下,在java編程中關於位元組碼的一些指令的編譯與執行方法。



java文件編譯後的class文件,java跨平台的中間層,JVM通過對位元組碼的解釋執行(執行模式,還有JIT編譯執行,下面講解),屏蔽對操作系統的依賴。一個位元組(8位)可以儲存256中不同的指令,這樣的指令就是位元組碼,java所有指令有200個左右,這些指令組成了位元組碼文件(.class)。


一、位元組碼的主要指令:


.class文件裡面的十六進制文件,其中CAFEBABE是標志這個文件為java的編譯後的文件,00000034代表版本號,01670700一個位元組(8位)就是一個位元組指令,由於數值指令太難看懂,我們可以用javap將指令翻譯為助記指令。


1、載入或儲存指令


在棧幀仿絕消中,宏嘩通過指令操作數據在局部變數備知表與操作棧間傳遞。


ILOAD、ALOAD:將int、對象引用類型從局部變數表壓入操作棧頂;


ISTORE、ASTORE:將int、對象引用類型從操作棧頂儲存到局部變數表裡;


ICONST、BIPUSH、SIPUSH、LDC:將常亮載入到操作棧頂。


2、運算指令


對操作棧上的值進行運算,並把結果寫入操作棧頂,如IADD、IMUL。


3、類型轉換指令


I2L、D2F


4、對象創建與訪問指令


NEW


除了位元組碼指令外,南邵電腦培訓認為還包括像LINENUMBER儲存位元組碼與源碼對應,方便調試定位;LOCALVARIABLE儲存當前方法使用到的局部表量表。


二、java源碼文件轉化為位元組碼(.class)文件的過程


JAVA源文件---------->詞法解析---------->語法解析---------->語義分析--------->生成位元組碼--------->位元組碼文件


詞法分析:根據空格分割出單詞、操作符等,形成token信息流;


語法分析:根據token流和java語法規范生成語法樹;


語義分析:檢查關鍵字、類型匹配是否正確;


『叄』 怎麼用JDK把源文件編譯成位元組碼文件(JAVA)

安裝好JDK

右擊我的電腦,選擇高級選項卡,裡面有個環境變數的按鈕,點擊進去開始配置環境變數
配置環境變數需要做一下幾個步驟:
1.打開環境變數,可選擇用戶變數或者是系統變數中的path,如果用戶變數中沒有path,就直接選擇系統變數的path,雙擊打開它,在最末端加上分號,在加上你的JDK安裝的目錄,然後再新建一個變數名叫classpath,其值為: .; (注意是一個點再加上一個分號)再加上Java的安裝目錄下jdk包下的lib包目錄,如果要保險點就再加上Java安裝目錄下jre包下的lib包,然後點確定退出環境變數

重新啟動cmd 敲Javac試試看!

熱點內容
芒果如何提取離線緩存視頻 發布:2025-02-13 23:16:12 瀏覽:792
王者榮耀微信區安卓哪裡分低 發布:2025-02-13 23:14:10 瀏覽:657
安裝linuxvmwaretools 發布:2025-02-13 22:56:02 瀏覽:7
浪潮伺服器如何引導系統安裝光碟 發布:2025-02-13 22:56:02 瀏覽:111
java多線程的同步 發布:2025-02-13 22:46:15 瀏覽:919
軟體使用許可權里存儲關閉還是打開 發布:2025-02-13 22:46:11 瀏覽:381
大王卡視頻上傳成功正在審核 發布:2025-02-13 22:45:06 瀏覽:522
和平精英安卓版怎麼調成中文 發布:2025-02-13 22:16:10 瀏覽:36
混沌起源需要什麼配置玩 發布:2025-02-13 22:14:33 瀏覽:277
vs引入文件夾 發布:2025-02-13 22:05:52 瀏覽:127