Java 原始数据类型

阅读更多

Java 原始数据类型

Java共7种原始类型

 

类型 占用字节 默认值 取值范围
boolean 4 false false,true
byte 1 0 -2^7 ~ 2^7-1
short 2 0 -2^15 ~ 2^15-1
int 4 0 -2^31 ~ 2^31-1
long 8 0 -2^63 ~ 2^63-1
float 4 0 -2^128 ~ 2^127
double 8 0 -2^1024 ~ 2^1023

 

1. 为什么boolean是4个字节?boolean数组呢?

 

        因为Java虚拟机中没有任何供boolean值专用的字节码指令,在Java语言之中涉及到boolean类型值的运算,在编译之后都使用Java虚拟机中的int数据类型来代替。但是boolean数组又不一样,Java虚拟机直接支持boolean类型的数组,虚拟机的newarray指令可以创建这种数组,boolean的数组类型的访问与修改共用byte类型数组的baload和bastore指令,数组对象占用的字节也不是简单的数组长度 * 1,因为数组对象还有length等属性。

 

 

2. float和double的bit分布

 

        float 从高到低 : 第1位是符号位,接下来8位是指数位,剩下23位是尾数位。

        double从高到底 : 第1位是符号位,接下来11位是指数位,剩下52位是尾数位。

 

 

3. Java没有提供无符号数值类型,要实现unsigned int只能自己用long来处理,有时解析报文时会带有unsigned int类型的报文长度,这时需注意不能直接用ByteBuffer.getInt()之类的方法,否则可能读出负的包长。

你可能感兴趣的:(java,原始类型,字节,取值范围)