类型转换

类型转换

世界这么大,我们一点一点挖

1.java是强类型语言,有些运算时需要用到类型转换

低-->高

byte,short,char->int->long->float->double

2.运算中,不同类型的数据先转化为同一类型,然后进行计算

3.强制类型转换(由高到低)

类型转换注意可能会出现内存溢出和精度损失的情况

// 内存溢出
int a = 128;
byte b = (byte) a;
System.out.println(a); // 128
System.out.println(b); // -128

// 精度损失
float c = 28.8f;
double d = -39.28;
System.out.println((int) c); // 28
System.out.println((int) d); // -39

4.自动类型转换(由低到高)

// char类型强制转换
char e = 'a';
int f = e + 1;
System.out.println(f); // 98
System.out.println((char) f); // b

// 对较大数进行操作是注意溢出问题
int money = 10_0000_0000; // jdk7新特性,支持数字间添加下划线好认数字
int year = 20;
int totalMoney = money * year;
long totalMoney1 = money * year;
long totalMoney2 = money * (long) year;
System.out.println(totalMoney); // 溢出
System.out.println(totalMoney1); // 溢出,因为money和year是int类型 两者相乘也是int,再转为long
System.out.println(totalMoney2); // 正常

注意点

1.不能对布尔类型进行转换

2.不能把队形类型转换为不相干的类型

3.在把高容量类型转化为低能量类型时需要进行强制转换

4.转换可能出现内存溢出或者精度问题

posted @ 2021-10-12 09:41  Oh,mydream!  阅读(33)  评论(0编辑  收藏  举报