5-5. 基本数据类型之间的互相转换
【摘要】 Java系列第五课
1、八种基本数据类型当中,除布尔类型之外,剩下的7种类型之间,都可以互相转换;
字节类型 byte 1字节 -128 到 127
短整数类型 short 2字节 -32768 到 32767
整数类型 int 4字节 -2147483648 到 2147483647
长整数类型 long 8字节 不用记
单精度 float 4字节 不用记
双精度 double 8字节 不用记
字符类型 char 2字节 0 到 65535
2、小容量向大容量转换,称为“自动类型转换”;
数据类型的容量从小到大排序:
byte < short < int < long < float < double
char < int < long < float < double
任何浮点类型不管占用多少个字节,都比整数型容量大。
char和short可表示的种类数量相同,但是char可以取更大的正整数 ,因为char中没有负数。 short【-32768,32767】 char【0,65536】
3、大容量转换成小容量,叫做“强制类型转换”;
强制类型转换需要加强制类型转换符,程序才能编译通过,但是在运行阶段可能会损失精度,所以谨慎使用。
4、重要的一个知识点
当整数字面值没有超出byte,short,char的取值范围,可以直接把字面值赋值给byte,short,char类型的变量。【注:这里直接赋值的是一个字面值,假如你把一个大容量类型的变量 赋值给 byte,short,char类型的变量,会出现编译错误。因为编译阶段只进行语法检查,不进行程序运算】
5、byte,short,char混合运算的时候,各自先转换成int类型再做运算。
public class Test {
public static void main(String[] args) {
byte a = 100;
short b = 99;
char c = 99;
int d = a + b + c;
System.out.println(d);
}
}
结果是:
6、多种数据类型混合运算,先转换成容量最大的那种类型再做运算。
public class Test {
public static void main(String[] args) {
byte a = 100;
short b = 99;
char c = 99;
// 混合运算的时候,abc都会被当作int类型参与运算
// 最终结果肯定也是属于int类型
// 而变量d属于short 类型 小容量
// 大容量转换为小容量会发生强制类型转换
// 需要使用强制类型转换符
// 因为你这里直接赋值的不是一个字面值,
// 而是一个运算表达式
// 因此,不能省略“强制类型转换符”
short d =(short) (a + b + c);
System.out.println(d);
// 只有直接赋值整数型字面值的时候
//才可以省略“强制类型转换符”
short e = 100;
System.out.println(e);
}
}
结果是:
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)