一、类型转换

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

低 ---------------------------------------------------》高
byte ,short,char,--->int --->long --->float ---> double

  • 运算中,不同类型的数据要先转换为同一类型再进行运算。
int  i=128;
byte b = (byte)i;  //内存溢出

//强制转换     (类型)变量名     高--》低
//自动转换                      低--》高

System.out.println(i);  // 128
System.out.println(b); //-128  强转存在内存溢出

/*
注意点:
1. 不能对布尔值进行转换
2. 不能把对象转换为不相干类型
3. 在把高容量转换到低容量的时候,强制转换
4. 转换的时候可能存在内存溢出,或者精度问题
*/

System.out.println((int)23.78);//23  强转存在精度问题
System.out.println((int)-45.786f);  //-45  强转存在精度问题


char c='a';
int d = c+1;
System.out.println(d);  //98
System.out.println((char)d)  //b

延伸

//操作比较大的数的时候,注意溢出问题
//JDK新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
System.out.println(money);  //1000000000

int year=20;
total = money*year;
System.out.println(total); //-1474836489
long total2 = money*year;  //计算完默认为int,也就是计算的时候已经溢出,再转换也没用
System.out.println(total2); //-1474836489

long total3 = (long)money*year;  // 先把一个数转换为long类型
System.out.println(total3); //2000000000

// L  l 的区别

狂神说java