Java数据类型
Java是一种强类型语言,这就意味着必须为每一个变量声明一种类型。在Java中,一共有8种基本类型,其中有4种整型、2种浮点类型、1种用于表示Unicode编码的字符单元的字符类型char和1种用户表示真值的boolean类型。
一、整型
整型用于表示没有小数部分的数值,允许是负数,分别是int、short、long、byte
类型 | 存储需求 | 取值范围 |
int | 4字节 | -2 147 483 648 ~2 147 483 647 |
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 |
byte和short一般用于特定的应用场合,例如底层的文件处理或者需要控制占用存储空间量的大数组。
在Java中,整型的范围与运行Java代码的机器无关,所有数值类型所占用的字节数据与平台无关。
从Java7开始,可以加上前缀0b表示二进制数,比如0b1001表示9;可以为数字加下划线,比如100000可以写成100_000。
二、浮点类型
类型 | 存储需求 | 取值范围 |
float | 4字节 | 有效位数6~7位 |
double | 8字节 | 有效位数15位 |
double类型的数值精度是float类型的两倍,一般情况下都会偏使用double类型,float类型的数值必须有个后缀F或者f,不加默认是double类型,加上d或者D也是表示double类型。
所有的“非数值”的值都是不相同的。
涉及金融运算之类因为不能有任何舍入误差,所以应该用BigDecimal类。
三、char类型
在Java中,char类型用UTF-16编码描述一个代码单元,除非是面试笔试之类的一般很少使用。
四、boolean类型
booleanl(布尔)类型有两个值,false和true,用来判定逻辑条件。整型值和布尔值之间不能相互转换。
五、数值类型直接的转换
实心箭头表示无丢失,虚箭头表示可能有精度损失的转换。
当使用一个整数和一个浮点数进行二元操作时,比如说加,必须把两个操作数转换为同一类型再进行计算。
如果有一个double类型,另一个就会转换成double类型,
否则,如果有一个float类型,另一个就会转换成float类型,
否则,如果有一个long类型,另一个就会转换成long类型,
否则,都会转换为int类型。