转换基元
在 Java 中,我们可以在整数值和浮点值之间进行转换。此外,由于每个字符对应于 Unicode 编码中的数字,因此可以将 char
类型转换为整数和浮点类型。boolean
是唯一无法转换为任何其他原始数据类型的原始数据类型。
转换有两种类型: 扩展转换和缩小转换。
一个扩大转换是当一个数据类型的值被转换为占据比前者更比特其它数据类型的值。在这种情况下,没有数据丢失的问题。
相应地,缩小转换是指将一种数据类型的值转换为占用比前者少的位的另一种数据类型的值。在这种情况下可能会发生数据丢失。
Java 会自动执行扩展转换。但是,如果要执行缩小转换 (如果你确定不会发生数据丢失),则可以使用称为 cast
的语言构造强制 Java 执行转换。
扩大转换:
int a = 1;
double d = a; // valid conversion to double, no cast needed (widening)
缩小转换率:
double d = 18.96
int b = d; // invalid conversion to int, will throw a compile-time error
int b = (int) d; // valid conversion to int, but result is truncated (gets rounded down)
// This is type-casting
// Now, b = 18