如何判断我编写的程序是 32 位还是 64 位?

How can I tell if a program I write is 32 bit or 64 bit?

我在 java 中写了一些程序,但我想知道它们是 32 位还是 64 位,我的意思是如果 运行 在 32 位计算机上它会怎样?是 64 位吗?

I wrote some programs in java, but I would like to know if they are 32 bit or 64 bit

都没有。您的 Java 程序不是特定的 32 位或 64 位程序。

所有 java 程序都应该 运行 每个最新的 Java 实施。

当你编译一个 java 程序时,它会变成 Java bytecode,这通常与你编译它的平台和你 运行 它的平台无关。

这个问题应该可以为您解答一些问题:Java 32-bit vs 64-bit compatibility

虽然 64 位 Java 实现可能会更好地处理某些 64 位操作,但程序的行为方式应该没有区别(假设您没有使用需要 64 位实现的库).

由JRE决定。 JRE 有 32 位版本和 64 位版本。

编译的Java程序独立于系统架构。 以防万一,如果您想检查某些特定情况下的 JVM 位大小,您可以使用

System.out.println("JVM Bit size: " + System.getProperty("sun.arch.data.model"));

通常我们从不编写可以说是 32 位或 64 位的代码。 它实际上取决于 JRE 和 machine 。 其余的事情由 JVM 和 CPU.

管理

例如,如果我们在 32 位机器上使用 long 或 double 等 64 位原语 那么即使像 long var = 10l; 这样的赋值操作也不会是原子操作。它将分两个阶段进行 32 位。

但相同的赋值操作在64位中将是原子操作。