Java中的类型转换
将一个基元数据类型的值分配给另一个基元数据类型称为强制转换。java中有两种类型的类型转换,如下图所示。
窄型铸件
它也被称为显式类型转换。这是在将较大大小的数据类型分配给较小大小的数据时完成的,因此使用了术语窄化。
请注意双变量d和浮点变量f之前括号内的int。这是在将较大大小的数据类型值传递给较小尺寸的数据类型时完成的。
public class JavaExample {
public static void main(String[] args) {
double d = 4.55d;
float f = 1.25f;
int i = (int)d; // Explicit casting: double to int
int i2 = (int)f; // Explicit casting: float to int
System.out.println("Double Value: "+d); // Prints 4.55
System.out.println("Double to int: "+i); // Prints 4
System.out.println("Float value: "+f); // Prints 1.25
System.out.println("Float to int: "+i2); // Prints 1
}
}
加宽型铸件
加宽型铸件是一种自动铸件。在这种类型转换中,较小数据类型的值被分配给较大大小的数据类型。这也被称为隐式类型转换,因为不需要在括号中提及数据类型,并且转换由编译器自动处理。
public class JavaExample {
public static void main(String[] args) {
int i = 1001;
float f = 105.00f;
long l = i; // Implicit casting: int to long
double d = f; // Implicit casting: float to double
System.out.println("int Value: "+i); // Prints 1001
System.out.println("int to long: "+l); // Prints 1001
System.out.println("float value: "+f); // Prints 105.0
System.out.println("float to double: "+d); // Prints 105.0
}
}