序言:Java 包含八种数据类型 分别是4种整型(int、short、long、byte)、2种浮点类型(double、float)、1种表示Unicode编码的字符单元的字符类型char和1种表示真假值得boolean类型。
1. 整型
整型用于用于表示整数,允许为负数。总共四种整型,具体如下:
类型
存储需求
取值范围
int
4字节
-2 147 483 648 -- 2 147 483 547
short
2字节
-32 768 -- 32 767
long
8字节
-9 223 372 036 854 775 808 -- 9 223 372 036 854 775 807
byte
1字节
-128 -- 127
通常情况下,int是最常用的类型。但是如果表述的数值过大(例如全球人口数量)会使用long型,长整型后面会有 L 或 l 后缀。byte和short类型主要用于特定的应用场合,比如 底层的文件处理或者需要控制占用空间量的大数组 。
从java 7 开始 如果想将数字转换为 8 进制 仅需在数字前面加上 0 前缀即可,比如 010 表示八进制中的8 。而加上 0B 或 0b 则对应 2进制。 同时可以为数字加上 _ 下划线方便读数 如 1_000_000 表示一百万,java编译器在读取时会自动过滤掉这些下划线。
2. 浮点类型
浮点类型表示小数。有两种浮点类型,具体如下:
类型
存储需求
取值范围
float
4字节
有效位数为6 - 7位
double
8字节
有效位数位15位
double表示这种类型的数值精度是float类型的两倍,通常也被成为双精度类型。大部分小数都是使用double类型。因为大部分情况下float并不能满足精准度需求,只有需要单精准度的数据库或者需要存储大量数据时才会使用。
float类型的数值后会有一个F或f后缀。没有后缀的小数会默认为double类型,或者加上D或d表示double类型。
注意:有下面几种表示溢出或出错情况的三个特殊浮点数值:
·正无穷大
·负无穷大
·NaN(不是一个数字)
通常使用Double.POSITIVE_INFINITY、Double.NEGATIVE_INFINITY 和Double.NaN分别表示这三个特殊的数值,但是不能用于判断一个值是否是数字 而应该使用 Double.isNaN()来判断
例如 if(Double.isNaN(x))//判断一个值是否是数字
注意:浮点类型不能用于无法接受舍入误差的金融计算中。比如:
System.out.print(2.0-1.1) 输出的是 0.899999999999999 而不是 0.9 。这种误差的原因是 浮点类型采用的是二进制系统表示,而二进制是无法精确的展示1/10 的。如果需要使用无法接受舍入误差的计算时应该使用 BigDecimal类。
3. char类型
char类型原本用于表示单个字符。不够现在情况有所变化,如今有些Unicode字符也可以用一个char值描述,另外一些Unicode字符则需要两个char值。
char类型表示的变量要用单引号括起来,例如 ‘A’ 。它与 “A” 不同,“A” 表示的是一个字符串。char类型的值还可以表示为十六进制值。
4.boolean类型
boolean 类型有两个值 true 和 false,用于逻辑判断条件。整型值和boolean值之间不能相互转换。