数据类型的转换
- 在Java中,参与运算的数据类型不一致时,就会发生类型的转换。
- 运算时,不同类型的数据先转化成同一类型,再进行运算。
转换方式:
按照转换方式,有两种 :自动转换类型(也称为隐式转换)和强制转换类型(也称显式转换)。
1.自动转换类型
特点:容量小的数据类型会自动转化成容量大的数据类型。
低------------------------------------------------------->高
char,byte,short ---> int ---> long ---> float ---> double
转换发生的条件 :由低类型 —> 高类型
public class Demo {
public static void main(String[] args) {
int a1 = 12;
byte a2 = 24;
System.out.println(a1+a2);
}
}
注意事项:
byte、short、char相互之间不转换,他们参与运算首先转换为int类型。
2.强制类型转换
特点:容量大的数据类型向容量小的数据类型转换,要进行强制类型转换,使用符号:() 。
格式:(类型)变量名 由级别高—>低
public class Demo {
public static void main(String[] args) {
int i = 128;
byte b = (byte)i;//强制转换
System.out.println(i); //输出128
System.out.println(b); //输出-128
//因为byte 的最大内存是127,要是赋予128的话,就会造成内存溢出的问题
}
}
- 类型转化的注意点:
1.不能对布尔值进行转换。
2.不能把对象类型转换为不相干的类型。
3.在把高容量转换到低容量的时候,强制转换。
4.转换的时候可能存在内存溢出,或者精度损失问题 !