我的 Java 进化史

第六课 基本数据类型之间的转换

2020-05-18  本文已影响0人  Yorick_Xu

1 自动类型转换

1.1 什么是自动类型转换

注:容量的意思是该基本数据类型的表示范围的大小(参照第五课的基本数据类型表示范围)

1.2 基本类型之间的自动类型转换

基本数据类型自动转化图

2 强制类型转换

byte a = 100;
int b = (int)a;
int x = 300;
byte bx = (byte)x; // 此时,bx的值需要根据内存进行分析,而不是300

3 运算时类型提升

测试代码如下:

int a = 1000000000;
int b = 20;

System.out.println((long)a * b); // 此时a提升为long类型,整个表达式就提升了
System.out.println((long)(a * b)); // 此时a*b的整体被提升到long型

运行结果如下:

20000000000
-1474836480

注:当出现以下情况时,最好在表达式开始之初就将类型进行提升(如long_1所示),而不是在结尾处进行类型提升(如long_2所示),防止前半部分计算时已经发生溢出的现象

long_1 = 70L * 60 * 24 * 365;
long_2 = 70 * 60 * 24 * 365L;
上一篇下一篇

猜你喜欢

热点阅读