本篇主要介绍Java语言中的8种基本的数据类型。
常用数据类型
Java中常用的数据类型可以分为:字节型、整型、浮点型、字符型和布尔型。
Java常用数据类型列表
| 类型 | 数据类型 | 存储空间 | 备注 |
|---|---|---|---|
| 字节型 | byte | 1字节(8位) | |
| 整型 | short | 2字节(16位) | 又称为短整型 |
| 整型 | int | 4字节(32位) | |
| 整型 | long | 8字节(64位) | 又称为长整型 |
| 浮点型 | float | 4字节(32位) | 又称为单精度 |
| 浮点型 | double | 8字节(64位) | 又称为双精度 |
| 字符型 | char | 2字节(16位) | |
| 布尔型 | boolean | 1字节(8位) |
在实际开发过程中,根据使用频率,常用的数据类型有byte、int、long、double、char和boolean。
1.1 byte型
byte表示数据的范围比较有限,一个字节8位,从−27到27−1,即-128~127。注意使用byte存储的时候要注意数值范围不要超出范围。
1.2 int型
int型是常用的数据类型,主要用来存储整数,占用4个字节32位,可以表示从−231到231−1,即-2147483648~2147483647。
在代码里直接写出来的整数,默认的类型是int类型。而且可以写十六进制(以0x开头),可以写八进制(以数字0开头),但不能直接写二进制整数(jdk1.7之后可以写二进制,以0b开头)。
int num1 = 90;//整数90默认的为int类型
int num2 = 0xff;//ff为十六进制整数,即十进制255
int num3 = 011;//11为八进制整数,即十进制9
int num4 = 0b100;//100为二进制,即十进制4,jdk1.7之前不支持
注意:
1)直接写出的整数,如果超出int类型的范围,会导致编译错误
2)整型在相除时,会丢弃小数部分
3)int型数据运算时,如果超出范围,会发生溢出
int num1 = 10000000000;//编译错误,超出了int的范围
int num2 = 5/2; //num2的值为2,整数相除会舍弃小数部分
int num3 = 2147483647; //int所表示的最大整数,即范围的上边界
num3 = num3+1; //num3的值为-2147483648
int num4 = -2147483648; //int所表示的最小整数,即范围的下边界
num4 = num4-1; //num4的值为2147483647
1.3 long型
在表示整数时,如果int类型的范围不够,可以使用long类型,long类型占8个字节64位,表示范围为−263~263−1。整数后面加“L”或者“l”可以表示该数值为long型,建议使用“L”作为后缀(防止小写的字母l与数字1发生混淆)。
注意:
1)long型数值如果超出int的范围,不写L后缀会出现编译错误
2)运算的结果可能超出int范围,参与运算的数值要保证其中一个为long型,推荐将第一个参与运算的整数设置为long型
long num1 = 1000; //不会出现编译错误
long num2 = 10000000000; //超出int范围,不加L后缀会出现编译错误
//dis1的值为-836239360,因为运算结果超出了int范围,产生了溢出
long dis1 = 10000*365*24*60*60*300000000;
//dis2的值为2374279631452241920,将第一个数字设置为long型
long dis2 = 10000L*365*24*60*60*300000000;
1.4 double型
浮点数就是我们常说的小数,包括float和double型,float占4个字节32位,表示的小数精确度较低,属于单精度浮点数。而double占8个字节64位,表示的小数精确度高,是float的2倍,因此double也叫双精度浮点数,大多数情况下,小数使用double型。double表示的范围:4.9E-324 (2−1074)~1.7976931348623157E308 (21024−1)。
注意:
1)代码中直接写出的小数默认为double类型,因此可以省略“D”或“d”的后缀
2)要表示一个小数为float型,必须加“F”或者“f”做后缀
3)小数可以使用0.0125的写法,也可以使用科学计数法写为1.25E-2。
4)运算中,如果有double型数字参与运算,结果为double型
5)计算机是二进制的世界,因此无法十分精确的表示小数,总会存在误差。想要进行精确运算,推荐使用BigDecimal,此处暂不介绍。
float num1 = 1.25; //编译错误,小数默认为double型
float num2 = 1.25f; //正确
double num3 = 5/2.0; //num3的值为2.5
double num4 = 3.0;
System.out.println(num4-2.9); //输出结果为0.10000000000000009
1.5 char型
char型实质上是一个16位的无符号整数,其值是Unicode字符编码值。
注意:
1)字符型使用单引号,不能使用双引号(双引号代表字符串)
2)可以使用整数(0~65535之间),字符和Unicode字符赋值
char c1 = "A"; //字符使用双引号,出现编译错误
char c2 = 65; //正确,可以使用十进制整数赋值
char c3 = 0x41; //正确,也可以使用十六进制整数赋值
char c4 = '\u0041'; //正确,使用Unicode字符的十六进制赋值
1.6 boolean型
boolean类型适用于真假逻辑,只有两个取值,true和false。一般用于条件判断,true表示条件成立,false表示条件不成立。
boolean sex = true; //正确
boolean isMarried = false; //正确
boolean flg = TRUE; //编译错误,boolean值不支持大写TRUE或FALSE
不同的数据类型之间可以相互转化,有自动转换和强制转换,下一篇将介绍类型转换。
本文详细介绍了Java语言中的8种基本数据类型,包括字节型、整型、浮点型、字符型和布尔型,并提供了每种数据类型的存储空间大小及使用注意事项。

被折叠的 条评论
为什么被折叠?



