类型 | 占用字节数 |
---|---|
int | 4 |
long | 8 |
double | 8 |
float | 4 |
char | 2 |
byte | 1 |
short | 2 |
boolean | 1字节或1比特 |
整形 int Java中占4个字节 与操作系统没有直接关系(在任何系统中始终是4个字节)。4个字节表示的范围为:-2^31 -> 2^31-1
整型 long Java 中 long 类型占 8 个字节. 表示的数据范围 -2^63 -> 2^63-1
双精度浮点型 double 占8字节 不能单纯用2^n表示 ,原因是Java 的 double 类型的内存布局遵守 IEEE 754 标准(和C语言一样), 尝试使用有限的内存空间表示可能无限的小数, 势必会存在一定的精度误差。
单精度浮点型 floatfloat 类型在 Java 中占4个字节, 同样遵守 IEEE 754 标准. 由于表示的数据精度范围较小, 一般在工程上用到浮点数都优先使用double,不太推荐使用float。
字符型 char 在Java中使用unicode表示字符占2个字节。
字节类型 byte占1个字节 范围-128~127。
布尔类型 boolean 有些 JVM 的实现是占 1 个字节, 有些是占 1 个比特位, 这个没有明确规定。