自Java发布以来,基本数据类型为***byte、short、int、long、char、float、double、boolean***。
其中:
整形: byte,short,int,long
字符类型: char
浮点型: float,double
布尔型:布尔
在详细介绍之前,Java中最小的计算单位是***字节**,1字节=8位(bit )。
1 .整数型Java的整数型数据是有符号的数。 也就是说,如果第一个位为0,则表示正整数;如果第一个位为1,则表示负整数。 在计算机中负数用补数表示,补数是怎么计算的?
补码=源码取反 + 1;
例如:
2 )计算机显示为00010110,
-22、翻转: 11101001、加1:11101010
Byte byte是Java的整数类型,长度为1字节8bit,值为10000000(-128 )到01111111 (127 )。变量初始化的缺省值为0,包装类byte
Short short是Java的整数型,长度为2字节16bit,值为10000000000000(32768 )到0111111111 11111111111 (32767 ),变量初始化的默认值为0,包装类short
int int是Java的整数,长度为4字节32位,取-2^ 31 (2,147,483,648 )到2^31-1 ) 2,147,483,647 )的值。变量初始化的默认值为
长整型是Java整数,长度为8字节64位,从-2^ 63 (9,223,372,036,854,775,808 )到2^63-1 ) 9,223,372,036,854
2 .浮点Java中的浮点数据不能直接用二进制表示,而是相对于实数的近似数据表示,符合IEEE 754标准
浮点型是Java的浮点型,也称为单精度浮点型,长度为4字节32bit,变量初始化默认值为0.0f,包装器类浮点型
包括1. float结构编码比特、指数比特和尾数比特三部分
符号位(s )指数位) e )尾数位) m )长度1位8位23位说明0为正数,1为负数格式,为e值范围(0,255 ),指数位取值),)格式为1.M或0.M。 其中E=0时,取1.M,称为范式,e!=0时,取0.M,称为非正规形2. float取值正规形:
非正规形式:
根据上式可以简单计算的float的可取范围如下。
(最小值,符号位s为1,指数位e为255 ) )。
(最大值为符号位s为0,指数位e为255 )
可以取得其间的近似数据。
注意:根据指数位数和尾数位数的取法不同,像NAN一样有正无限、负无限,但平时很少使用,在此不再深入说明; 此外,由于是近似值,无法显示金额,建议使用BigDecimal来显示金额
Double double是Java的浮点型,也称为双精度浮点型,长度为8字节64bit,变量初始化默认值为0.0d,包装器类double
包括1. double结构编码比特、指数比特和尾数比特三部分
符号位(s )指数位) e )尾数位) m )长度1bit11bit52bit说明0为正数,1为负数格式为e值范围(0,2047 ),指数位为值),格式为1.M或0.M。 其中E=0时,取1.M,称为范式,e!=0时,取0.M,称为非正规形2. double取值正规形:
非正规形式:
根据上面的公式可以简单计算出的double的可取范围如下。
(最小值,编码位s为1,指数位e为2047 ) )。
(最大值为符号位s为0,指数位e为2047 )
可以取得其间的近似数据。
注意:根据指数位数和尾数位数的不同,像NAN一样有正无限、负无限,但平时很少使用,在此不再详细说明; 此外,由于是近似值,无法显示金额,建议使用BigDecimal来显示金额
3 .字符型char char是java的字符型,2字节占16bit,可以分配1个字符及整数值,变量初始化没有默认值,是包装类Character。
例如:
chara=‘a’;
char a=‘中’;
char a=12; //取值范围0~65536。 char类型在ASCII字符编码中有相应的数值,可以直接进行运算,输出字符表中的相应字符
4 .布尔型布尔型布尔型JVM不提供布尔型专用的字节码指令。 此外,布尔型数据在编译后,在JVM中以int型表示。 在这种情况下,布尔数据是4字节32位,并且布尔数组被编码为Java虚拟机的字节数组。 此时,每个布尔数据用一个字节占据byte数组
Java虚拟机规格
true、false的值只有两个,变量初始化默认值false