字節碼二進制可執行文件(如Java類文件,Parrot字節碼文件或CLR文件)和機器碼可執行文件(如ELF,Mach-O和PE)之間有什麼區別。像Java字節碼和文件和機器碼可執行文件(如ELF)的字節碼有什麼區別?
這兩者之間有什麼特別的區別?
如ELF結構中的.text區域等於什麼部分的類文件?
或它們都有頭,但ELF和PE頭包含架構,但類文件不
Java類文件
ELF文件
PE文件
字節碼二進制可執行文件(如Java類文件,Parrot字節碼文件或CLR文件)和機器碼可執行文件(如ELF,Mach-O和PE)之間有什麼區別。像Java字節碼和文件和機器碼可執行文件(如ELF)的字節碼有什麼區別?
這兩者之間有什麼特別的區別?
如ELF結構中的.text區域等於什麼部分的類文件?
或它們都有頭,但ELF和PE頭包含架構,但類文件不
Java類文件
ELF文件
PE文件
在編譯成機器代碼之前,字節代碼是一箇中間步驟。由於最後一步需要加載時間(並且通常是運行時,就像實時(JIT)編譯的情況那樣),所以字節代碼與體系結構無關:運行時(.NET的CLR或Java的JVM)負責通過比較,本地代碼(Windows:PE,PE32 +,OS X/iOS:Mach-O,Linux/Android /等:ELF)是編譯代碼,適合於對於特定的體系結構(Android/iOS:ARM,其他大部分:Intel 32位(i386)或64位)。 (Old DOS支持「.com」格式,這是一個原始的內存映像)。在上述所有內容中,大致可以這樣說:
希望這會有所幫助。真的,你的問題是模糊..
TG
有沒有「規則」,如何使兩種類型的格式,這意味着有相當多的格式有巨大的變化。換句話說,這個問題不能真正回答100%。 –
投票結束太寬泛。這歸結爲:瞭解提到的所有格式和執行環境~~ –
可能的重複:http://stackoverflow.com/questions/1782415/what-is-the-difference-between-assembly-code-and-bytecode –