1. 基础
类型 | 解释 | 空间 | 大小 |
---|---|---|---|
byte | 字节型 | 1 | 8 |
char | 字符型 | 2 | 16 |
short | 短整型 | 2 | 16 |
int | 整型 | 4 | 32 |
long | 长整型 | 8 | 64 |
float | 单精度 | 4 | 32 |
double | 双精度 | 8 | 64 |
boolean | 布尔型 | 1/8 |
备注:
1.java中整型默认为int,定义long类型时需要加L/l;
2.浮点型默认为double,定义单精度float时需要加F/f;
3.boolean不能转化为任何其他类型;
4.小容量向大容量转化时为隐式转化;
5.大容量向小容量转化时会丢失精度,需要强制转化。
6.字符A-Z和a-z在ascii中代表不同的数字,所以int可以接收单个字符赋值
例如:int i = 'a';
2. 实例
2.1 隐式类型转换(小容量向大容量转换,自动转换)
* byte ---> int
byte b = 127;
int i = b;
* byte ---> long
byte b = 127;
long l = b;
* int ---> long
int i = 1;
long l = i;
* float ---> double
float f = 1.0f;
double d = f;
* int ---> float
int i = 1;
float f = i;
* int ---> double
int i = 1;
double d = i;
2.2 显示类型转换(大容量向小容量转换,会丢失精度;强制类型转换)
* int ---> byte
int i = 1;
byte b = (int)i;
* long ---> int
long l = 100000;
int i = (int)l;
* float ---> int
float f = 1.0f;
int i = (int)f;
* double ---> int
double d = 1.0;
int i = (int)d;
3. 例题
1. byte a1 = 2, a2 = 4, a3;
2. short s = 16;
3. a2 = s;
4. a3 = a1 * a2;
题目:以上四行代码中哪行会报错?
解答:3和4
3:s是short类型,short大容量转换成byte小容量需要强制转换
a2 = (byte)s;
4: a1 * a2 结果为int,int转换成short需要强制类型转换
a3 = (byte) (a1 * a2);