Java 原始数据类型

Java 原始数据类型

Java共7种原始类型

 

类型占用字节默认值取值范围
boolean4falsefalse,true
byte10-2^7 ~ 2^7-1
short20-2^15 ~ 2^15-1
int40-2^31 ~ 2^31-1
long80-2^63 ~ 2^63-1
float40-2^128 ~ 2^127
double80-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()之类的方法,否则可能读出负的包长。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值