java 基本数据类型所占字节数

一、java  基本数据类型

Java一共有8种基本数据类型(原始数据类型):     
类型          存储要求    范围(包含)                    默认值              包装类
整 int        4字节(32位) -2^31~ 2^31-1                  0                  Integer
数 short      2字节(16位) -2^15~2^15-1                   0                  Short
类 long       8字节(64位) -2^63~2^63-1                   0                  Long
型 byte       1字节(8位) -2^7~2^7-1                      0                  Byte
浮点 float    4字节(32位) -3.4e+38 ~ 3.4e+38             0.0f               Float
类型 double   8字节(64位) -1.7e+308 ~ 1.7e+308           0                  Double
字符 char     2字节(16位) u0000~uFFFF(‘’~‘?’)          ‘0’                Character 
布尔 boolean  1/8字节(1位)  true, false                  FALSE              Boolean

二、布尔争议

1、布尔类型, 为两个逻辑值,编译后用0,1来表示,仅需1bit即可存储;

2、计算机处理数据最小单位为1个字节即8位,因此布尔实际存储为1个字节,00000000,00000001.

3、JVM规范指出boolean当做int处理,也就是4字节,boolean数组当做byte数组处理,这样我们可以得出boolean类型占了单独使用是4个字节,在数组中是确定的1个字节。

参考:https://blog.csdn.net/YuanMxy/article/details/74170745

 

 

三、float与double的范围和精度

1. 范围
  float和double的范围是由指数的位数来决定的。
  float的指数位有8位,而double的指数位有11位,分布如下:
  float:
  1bit(符号位) 8bits(指数位) 23bits(尾数位)
  double:
  1bit(符号位) 11bits(指数位) 52bits(尾数位)
  于是,float的指数位有8位,故指数范围为-127~+128(-2^7+1    -    2^7),而double的指数范围为-1023~+1024,并且指数位是按补码的形式来划分的。
  其中负指数决定了浮点数所能表达的绝对值最小的非零数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。
  float的范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;double的范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值