数据类型转换

数据类型转换

由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。


强制转换

数据类型不一样时,将会发生数据转换,由大范围的数据类型向小范围的数据类型进行转换时,需要用强制转换。

格式:(类型)变量名

注意事项:

  1. 强制类型转换一般不推荐使用,因为可能发生精度损失、数据溢出
  2. byte/short/char 这三种类型都可以发生数据溢出
  3. 布尔值不能进行强制转换
  4. 不能把对象类型转换为不相干的对象类型。
int i=128;
byte b=(byte) i;
//内存溢出,转换的时候需要避免
System.out.println((int)23.7);
//发生精度损失,输出结果为:23

自动类型转换

当小范围数据类型向大范围数据类型转换时,会发生自动类型转换。

double num1=i;
System.out.println(num1);
//输出结果:128.0

常见问题

数据比较大的时候,注意溢出问题。

JDK7的新特性,数字之间可以用下划线分割

int num1=10_0000_0000;
System.out.println(num1);
//输出不变
int money=10_0000_0000;
int years=20;
int total=money*years;
long total2=money*years;
//默认是int,转换之前就已经出现问题了,数据溢出
long total3=money*(long)years;
System.out.println(total3);
posted @ 2020-05-19 16:55  DL50  阅读(104)  评论(0编辑  收藏  举报