java字节码和机器码_字节码和机器码
字節(jié)碼
字節(jié)碼是一種中間碼
字節(jié)碼通常指的是已經(jīng)經(jīng)過編譯,但與特定機(jī)器碼無關(guān),需要直譯器轉(zhuǎn)譯后才能成為機(jī)器碼的中間代碼。字節(jié)碼通常不像源碼一樣可以讓人閱讀,而是編碼后的數(shù)值常量、引用、指令等構(gòu)成的序列。
字節(jié)碼主要為了實(shí)現(xiàn)特定軟件運(yùn)行和軟件環(huán)境、硬件環(huán)境無關(guān)。字節(jié)碼的實(shí)現(xiàn)方式是通過編譯器和虛擬機(jī)器。編譯器將源碼編譯成字節(jié)碼,特定平臺(tái)上的虛擬機(jī)器將字節(jié)碼轉(zhuǎn)譯為可以直接執(zhí)行的指令。字節(jié)碼的典型應(yīng)用為Java語言。
總結(jié):字節(jié)碼是一種中間狀態(tài)(中間碼)的二進(jìn)制代碼(文件)。需要直譯器轉(zhuǎn)譯后才能成為機(jī)器碼。
機(jī)器碼
機(jī)器碼就是計(jì)算機(jī)可以直接執(zhí)行,并且執(zhí)行速度最快的代碼。
用機(jī)器語言編寫程序,編程人員要首先熟記所用計(jì)算機(jī)的全部指令代碼和代碼的涵義。手編程序時(shí),程序員得自己處理每條指令和每一數(shù)據(jù)的存儲(chǔ)分配和輸入輸出,還得記住編程過程中每步所使用的工作單元處在何種狀態(tài)。這是一件十分繁瑣的工作,編寫程序花費(fèi)的時(shí)間往往是實(shí)際運(yùn)行時(shí)間的幾十倍或幾百倍。而且,編出的程序全是些0和1的指令代碼。
機(jī)器語言是微處理器理解和使用的,用于控制它的操作二進(jìn)制代碼。
8086到Pentium的機(jī)器語言指令長(zhǎng)度可以從1字節(jié)到13字節(jié)。
盡管機(jī)器語言好像是很復(fù)雜的,然而它是有規(guī)律的。
存在著多至100000種機(jī)器語言的指令。這意味著不能把這些種類全部列出來。
總結(jié):機(jī)器碼是電腦CPU直接讀取運(yùn)行的機(jī)器指令,運(yùn)行速度最快
總結(jié)
以上是生活随笔為你收集整理的java字节码和机器码_字节码和机器码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Verilog实现状态机与状态机经典示例
- 下一篇: 【每日一面】关于推理题