Java原始数据类型大小

Pra*_*ala 5 java

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

示例代码:

int i;
System.out.print(sizeof(i));
Run Code Online (Sandbox Code Playgroud)

Bat*_*eba 9

在Java中不需要这样的东西,因为为所有JVM设置了基元的大小(与C不同,它们可以变化).

char是16位(实际上是无符号数),int是32位,long是64位.

boolean这一切都是丑陋的妹妹.在内部它被操作为32位int,但是booleans的数组每个元素使用1个字节.

  • 我认为没有理由把布尔这个丑陋的妹妹称为.内部字节,短路和字符也经常被操作为32位整数.用户不应该关心这些内部. (2认同)

Tag*_*eev 8

BYTES在相应的盒装类中使用常量(自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
Run Code Online (Sandbox Code Playgroud)

请注意,未定义引用和布尔大小,它是特定于实现的.一般来说,你很少关心它们的大小.