概述
一、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。
最后
以上就是无聊小馒头为你收集整理的java 基本数据类型所占字节数一、java 基本数据类型二、布尔争议三、float与double的范围和精度的全部内容,希望文章能够帮你解决java 基本数据类型所占字节数一、java 基本数据类型二、布尔争议三、float与double的范围和精度所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复