简短答案- 否
长答案
bytecode
对于不同的平台,它们不必相同。是JRE(Java运行时环境),它知道如何精确地执行字节码。
如果您遍历Java VM规范,您将知道字节码对于不同平台是相同的,这不一定是正确的。
通过类文件格式,它将类文件的结构显示为
ClassFile {
u4 magic;
u2 minor_version;
u2 major_version;
u2 constant_pool_count;
cp_info constant_pool[constant_pool_count-1];
u2 access_flags;
u2 this_class;
u2 super_class;
u2 interfaces_count;
u2 interfaces[interfaces_count];
u2 fields_count;
field_info fields[fields_count];
u2 methods_count;
method_info methods[methods_count];
u2 attributes_count;
attribute_info attributes[attributes_count];
}
检查次要和主要版本
minor_version,major_version
minor_version和major_version项目的值是该类文件的次要版本号和主要版本号。主要版本号和次要版本号共同决定了类文件格式的版本。如果类文件的主版本号为M,次版本号为m,则将其类文件格式的版本表示为Mm。因此,类文件格式的版本可以按字典顺序排序,例如1.5 <2.0 <2.1。当且仅当v处于Mi.0 v Mj.m的某个连续范围内时,Java虚拟机实现才能支持版本v的类文件格式。只有Sun可以指定符合Java平台某个发行级别的Java虚拟机实现可以支持的版本范围。1
阅读更多的脚注
1 Sun的JDK版本1.0.2的Java虚拟机实现支持类文件格式版本45.0至45.3(含)。Sun的JDK版本1.1.X可以支持45.0到45.65535之间的版本的类文件格式。Java 2平台1.2版的实现可以支持45.0到46.0(含)范围内的版本的类文件格式。
因此,研究所有这些结果表明,在不同平台上生成的类文件不必相同。