一、java的八大基本类型
四类:
**1、整形**
类型 | 大小 | 范围 |
---|
byte(字节类型) | 1字节 | -2^7 ~ 2^7-1 |
short(短整形) | 2字节 | -2^15 ~ 2^15-1 |
int(整形) | 4字节 | -2^31 ~ 2^31-1 |
long(长整型) | 8字节 | -2^63 ~ 2^63-1 |
**2、浮点型**
类型 | 大小 | 范围 |
---|
float(单精度浮点数) | 4字节 | -2^128 ~ 2^128 |
double(双精度浮点数) | 8字节 | -2^1024 ~ 2^1024 |
**3、字符型**
**4、布尔类型**
注意:
(1)整数字面值是默认int类型来存储;如果整数字面值超过int类型,将类型转换为long类型,需要在数值后面加L或l后缀。但如果没超过int类型的范围,又需要用long类型来接收,则可以不加后缀.
(2)浮点数字面值默认为double,如果想要使用float类型来存储浮点数字面值,则需要在其后加F或者f.
double类型是浮点数常用的类型;double类型的字面值后面可以加D或者d,也可以不加.
浮点型存储数据可能有精度损失.
(3)字符类型的数据可以通过int类型的数字来表示,通过ASCII码表转换为对应的值.
(4)Boolean类型的值只能是true或者false,默认为true.
(5)基本数据类型都是关键字.
二、基本数据类型之间的转换
1、**自动类型转换**
数值型:从小到大
整数:byte->short->int->long
浮点型:float->double
float自动转为double类型可能有精度损失.
整形->浮点数
直接在后面补上 .0
byte->short->int->long---->float->double(虚线的转换有精度损失)
字符型:
char->int->long---->float->double
char->int
根据码表将字符对应的ASCII值转为int类型.
**2、强制类型转换**
从大到小:编译会报错
大的类型转换为小的类型可能会溢出,为了确保程序的安全,编译时就会报错.
大的数据类型的数据值在小数据类型的范围之内,可以使用强制类型转换.
格式:
(type)数据
将数据的类型强制转换为小括号的数据类型.
注意:
1、浮点数强制转换为整数存在精度损失无论小数部分直接舍弃.
2、类似于Boolean类型无法通过强制类型转换转换为数值型.
3、当大的数据类型超过小的数据类型范围时,从最低位开始拿对应的位数的二进制.