类型转换
类型转换
-
运算中,不同类型的数据要转换成同一类型,然后进行运算
-
Java是强类型语言,进行某些运算时要类型转换
-
低到高:byte,short,char—>int—>long->float—>double
强制转换
-
转换格式:(类型)变量名或数据 由高到低
自动转换
-
由低转向高不需要转换
注意事项:
-
不能转化布尔值boolean
-
不能把对象类型转化为不相干的类型
-
在高容量转化为低容量时可能出现内存溢出问题
-
转化时可能出现精度问题(浮点数转化为整数时)
public static void main(String[] args) {
int a1= 128;//128让byte内存溢出
byte a2 = (byte) a1;//强制转换 (类型)变量名或数据 高转化为低
float a3=a1;//自动转化 低到高
double a4=22.3;
System.out.println(a2);
System.out.println(a3);
System.out.println((int)a4);
System.out.println("=========================================");
//溢出问题如何解决
int b=1_0000_00000;//在数字里加下划线不影响 jdk7的新特性
int b1=20;
long sum=b*b1;//在转换为long型前已经运算完成int型
long sum1=b*((long)b1);//转化为long型再运算
System.out.println(sum);
System.out.println(sum1);
/*
注意事项:
1.不能转化布尔值boolean
2.不能把对象类型转化为不相干的类型
3.在高容量转化为低容量时可能出现内存溢出问题
4.转化时可能出现精度问题(浮点数转化为整数时)
*/
}
}
-128
128.0
22
=========================================
//溢出问题:
-1474836480
20000000000

浙公网安备 33010602011771号