Java基本数据类型大小

Java基本数据类型大小,java,Java,嗨,我正在学习Java基础知识。我需要检查基本数据类型的大小,比如使用sizeof()在c语言中 示例代码: int i; System.out.print(sizeof(i)); 在Java中不需要这样做,因为原语的大小是为所有JVM设置的(不像C中的原语大小可以不同) char是16位(实际上是一个无符号量),int是32位,long是64位 boolean是这一切中丑陋的姐妹。在内部,它作为32位int进行操作,但是布尔值的数组每个元素使用1个字节。在相应的装箱类中使用字节常量(自Jav

嗨,我正在学习Java基础知识。我需要检查基本数据类型的大小,比如使用
sizeof()在c语言中

示例代码:

int i;
System.out.print(sizeof(i));

在Java中不需要这样做,因为原语的大小是为所有JVM设置的(不像C中的原语大小可以不同)

char
是16位(实际上是一个无符号量),
int
是32位,
long
是64位


boolean
是这一切中丑陋的姐妹。在内部,它作为32位
int
进行操作,但是
布尔值的数组每个元素使用1个字节。

在相应的装箱类中使用
字节
常量(自Java 8以来):

sizeof(int) -> Integer.BYTES
sizeof(long) -> Long.BYTES
sizeof(char) -> Character.BYTES
sizeof(short) -> Short.BYTES
sizeof(float) -> Float.BYTES
sizeof(double) -> Double.BYTES
sizeof(byte) -> Byte.BYTES

请注意,没有定义引用和布尔大小,这是特定于实现的。一般来说,你几乎不应该关心它们的大小。

如果你在谷歌上键入问题的标题,第一个结果可能会给你答案,你需要它的目的是什么?不是为了任何特定的目的!我只是想知道有没有可能。我看不出有什么理由称布尔为丑妹妹。在内部,字节、短字符和字符也通常作为32位整数处理。用户不应该关心这些内部构件。@TagirValeev事实上,
布尔值的大小没有语言定义。所有其他类型都在其包装类中定义了该大小(表示位数的大小常量)。您可以将所有类型写入ByteBuffer中—除了布尔值等。@realpoint,您的注释听起来很合理,但答案中的“在内部它被操纵为32位
int
”语句并非如此。在java-8之前,您可以使用
SIZE
常量,只需知道它们以位而不是字节表示。