在一个64位的机器上是一个int 32位或64位的大小?

在一个64位的机器上是一个int 32位或64位的大小?

32位。 这是Java语言特性之一,整数的大小不随底层计算机而变化。 请参阅规范的相关部分 。

原始数据的大小是虚拟机规范的一部分,不会改变。 将会改变的是对象引用的大小,从32位到64位。因此,相同的程序在64位JVM上需要更多的内存。 这种影响取决于您的应用程序,但可能很重要。

如果你想要一个64位整数,请使用long。

32位。 无论运行的是什么机器或操作系统,Java的运行方式都是一样的,至less对于原始数据types来说,这当然是正确的。

这是“编译一次,随处运行”的口号的后果之一:Java的执行是独立于底层硬件的字长和字节顺序的; JVM以同样的方式在任何地方工作。

这种独立性保证比抽象操作系统的尝试要好得多;-)

是的,这是32位

另一个通常被误解的观点是,无论我们的程序运行在哪个架构上,这些数据types的大小总是相同的。 所以你可能在64位的机器上运行你的程序,但是一个int将总是32位长,所以它将有相同的范围。 对于C#和Java都是如此。

这里是关于这个问题的全文:

Java和C#中的整体数据types。