变量
一个变量每次只能保存一个数据,必须明确保存的数据类型
数据类型
- 基本数据类型
整数、浮点数、字符、布尔…(四大类8种)
数据类型 | 类型名 | 字节 | 数据范围 |
---|---|---|---|
字节型 | byte | 1字节 | -128~127 |
布尔类型 | boolean | 1字节 | true、false |
字符 | char | 2字节 | 0~65535或单个汉字(1个汉字2字节) |
短整型 | short | 2字节 | -32768~32767 |
整型 | int | 4字节 | -2的31次方~2的31次方-1 |
长整型 | long | 8字节 | -2的63次方~2的63次方-1 |
单精度浮点数 | float | 4字节 | 1.4013E-45~3.4028E+38 |
双精度浮点数 | double | 8字节 | 4.9E-324~1.7977E+308 |
java中默认类型:整数类型是int,浮点类型是double
- 引用数据类型
类、数组、接口…
数据类型转换
- 自动转换
将取值范围小的类型自动提升为取值范围大的类型
int类型和byte类型运算过程:
int是4字节,byte是1字节,先把byte自动补充3字节提升为int类型,然后进行运算,结果仍是4字节即int类型
转换规则:byte、short、char运算时直接提升为int
byte、short、char->int->long->float->double
- 强制转换
将取值范围大的类型强制转换成取值范围小的类型
数据类型 变量名=(数据类型)被转换数据值
例:int i=(int)1.5
double类型->int类型过程:double是8字节,int是4字节,需要吧8字节的double砍掉前面4个字节变为4字节的int(就不画图了,画的太丑了)
注:浮点转成整数,直接取消小数点,可能会造成数据损失精度
double强制转成int,砍掉4字节,可能造成数据丢失
short s=1; s=s+1; 报错原因:s+1结果为int类型
short s=1; s+=1; 不报错,原因:把1转换为了short类型