Java数据类型的转换

数据类型的转换

由于Java是强类型语言,所以进行运算的时候,需要用到类型转换
运算中,不同类型的数据线转换为同一类型,然后进行运算

//字节大小:
//低---------------------------------->高
//浮点数的优先级大于整数
byte,short,char->int->long->float->double

1.强制类型转换

//强制类型转换:(类型)变量名  高--低
int i=128;
byte b=(byte)i;//byte取值范围:-128~127,因此内存溢出
System.out.println("i:"+i);
System.out.println("b:"+b);

运行结果:

2.自动类型转换

//自动转换:低--高
int i=128;
double d=i;
System.out.println("i:"+i);
System.out.println("d:"+d);

运行结果:

注意点

  1. 不能对布尔值进行转换
  2. 不能把对象类型转换为不相干的类型
  3. 在把高容量转换到低容量的时候,强制转换
  4. 转换的时候可能存在内存溢出,或者精度问题
//精度问题
System.out.println("(int)23.7:"+(int)23.7);//23
System.out.println("(int)-23.7:"+(int)-23.7);//-23

运行结果:

//所有字符的本质还是数字
char c = 'a';
int i = c+1;
System.out.println("i:"+i);
System.out.println("(char)i:"+(char)i);

运行结果:

//操作比较大的数的时候,注意溢出问题
//数字之间可以用下划线分割
int money=10_0000_0000;
int years=20;
int total=money*years;//-1474836480 计算的时候溢出了
long total2=money*years;//默认是int,转换之前已经出现溢出问题了
long total3=money*(long)years;//先把一个数转换为long
System.out.println("total:"+total);
System.out.println("total2:"+total2);
System.out.println("total3:"+total3);

运行结果:

posted @ 2020-11-12 14:45  *李开心  阅读(83)  评论(0)    收藏  举报