zei*_*tue 4 executable bytecode elf machine-code .class-file
字节码二进制可执行文件(如Java类文件,Parrot字节码文件或CLR文件)和机器代码可执行文件(如ELF,Mach-O和PE)之间有何区别.
这两者之间有什么明显的区别?
比如ELF结构中的.text区域等于类文件的哪个部分?
或者它们都有标题,但ELF和PE标题包含Architecture,但Class文件不包含
Java类文件

精灵档案

PE文件

小智 12
在编译成机器代码之前,字节代码是注意到的中间步骤.因为最后一步是加载时间(通常是运行时,就像即时(JIT)编译的情况一样,字节代码是独立于架构的:运行时(.net的CLR或Java的JVM)负责将字节代码操作码映射到其底层机器代码表示.
相比之下,本机代码(Windows:PE,PE32 +,OS X/iOS:Mach-O,Linux/Android /等:ELF)是编译代码,适用于特定架构(Android/iOS:ARM,大多数:Intel 32 -bit(i386)或64位).这些都非常相似,但仍然需要部分(或者,用Mach-O说法"加载命令")来设置可执行文件的内存结构,因为它变成了一个进程(旧的DOS支持".com"格式,这是一个原始记忆图像).在上述所有内容中,您可以大致说出以下内容:
希望这可以帮助.真的,你的问题很模糊..
TG
字节代码是"中途"步骤.因此Java编译器(javac)将源代码转换为字节代码.机器代码是下一步,计算机将字节代码转换为机器代码(可由计算机读取),然后通过读取机器代码执行程序.计算机无法直接读取源代码,同样编译器也无法立即转换为机器代码.您需要一个中途步骤才能使程序正常运行.