32位Java编译器生成的.class文件能否在64位系统上使用64位JVM?
是的,Java字节码与32/64位系统无关。
这就是主要目的:编译后的代码应该可以在 任何 系统上执行,只需为特定系统架构编译虚拟机即可。
是的,字节码仍然非常高级。在这个级别上没有32位和64位之分,就像没有32位和64位的Java代码(.java)一样。
是的,64位虚拟机的主要区别在于可以访问更大的内存空间。
Java语言最重要的特点之一就是编译生成的.class文件可以在任何Java系统上运行,不论底层硬件如何。
您的程序可以在32位和64位系统上运行,但是如果必要的话,只要硬件和操作系统能够胜任,在64位虚拟机上运行时,程序将能够访问更多的内存空间,而在32位虚拟机上则无法做到这点。
字节码,顾名思义使用基于字节的指令,如果说有什么东西是更加8位为中心的,那就是字节码。你应该期望32位编译器和64位编译器生成相同的代码。
编译器之间唯一的区别在于JVM的本机位大小,它在编译时运行编译器。你不应该期望它们表现出非常不同,除了64位版本无法在32位操作系统上运行。
int
和long
,它们始终是32位和64位,独立于底层操作系统。 - Jesper