C 指定最小类型大小,并且不同实现之间使用的实际大小存在差异。另一方面,Java 指定了精确的类型大小,因此实现之间没有差异。有些程序员总是喜欢指定每种类型的确切大小。如果您这样做,您可能会更喜欢 Java。或者,在 C 中,您可以包含标头<inttypes.h>并使用 C 的精确大小类型,例如int16_t和int32_t。但在回答你的问题“为什么 Java 中的类型是两倍大?”时,这是无法回答的,因为问题的前提是有缺陷的。你说,“例如,在 C 中,int 是 2 个字节”,但事实并非如此。最小保证大小为 2 个字节,但在当今最流行的机器上为 4 个字节。