Java中的基本数据类型

Java是一种强类型语言。这意味着必须为每一个变量声明一种类型。在Java中,一共有8种基本
类型(primitive type),其中由4种整型、2种浮点类型、1种用于表示Unicode编码的字符单元
的字符类型char和1种用于表示真值的boolean类型。

在Java中,所有的数值类型所占据的字节数量与平台无关。注意,Java没有任何无符号类型(unsigned).


1)整型
整型用于表示没有小数部分的数值,它允许是负数,Java提供了4种整型:
类型 存储需求
int 4字节
short 2字节
long 8字节
byte 1字节
在通常情况下,int类型最常用。
byte和short类型主要用于特定的应用场合,例如,底层的文件处理或者需要控制占用存储空间的大数组。
长整型数值有一个后缀L(如4000000000L)。
十六进制数值有一个前缀0x(如0xCAFE)。
八进制前有一个0,例如010对应的十进制中的8.
从Java7开始,加上前缀0b就可以写成二进制数,例如,0b1001就是9.

2)浮点型
浮点型用于表示有小数部分的数值,在Java中有两种浮点型:
类型 存储需求
float 4字节
double 8字节
double表示这种类型的数值精度是float类型的两倍,在很多情况下,float类型的精度很难满足需求,不指明情况下
浮点数默认是double类型。

警告:浮点数值不适用于禁止出现舍入误差的金融计算中。例如,命令System.out.println(2.0-1.1)将打印出0.8999999999999999,如图1所示。

Java中的基本数据类型

图1

而不是人们想象的0.9。其主要原因是浮点数采用二进制系统表示,而在二进制系统中无法精确表示分数1/10。这就好像十进制
无法精确表示1/3一样。如果需要在数值计算中不含有任何舍入误差,就应该使用BigDecimal类,稍后将介绍这个类。

3)char类型
cha类型用于表示单个字符,通常用来表示字符常量。
在Java中,char类型用UTF-16编码描述一个代码单元。

4)boolean类型
boolean(布尔)类型有两个值:false和true,用来判定逻辑条件。整型值和布尔值之间不能进行相互转换。
这里有一个问题,boolean占多少内存?