nem*_*035 10
这称为窄型铸造.来自oracle docs:
原始类型的22个特定转换称为缩小基元转换:
短到字节或字符
char到byte或short
int到byte,short或char
long to byte,short,char或int
float to byte,short,char,int或long
double to byte,short,char,int,long或float
缩小的原始转换可能丢失关于数值的总量值的信息,并且还可能失去精度和范围.
在Java中,有两种基本类型的类型转换:扩展和缩小.
widening conversion当您从具有较小(或较窄)的类型转换为具有较大(或较宽)范围的类型时,会发生A. 因此,没有机会丢失数据,转换被认为是"安全的".
narrowing conversion当您从具有较大(或较宽)的类型转换为具有较小(或较窄)范围的类型时,会发生A. 由于我们缩小了范围,因此可能会丢失数据,因此这种转换被认为是"不安全的"

从byte到char的转换是一种特殊情况,同时表示扩大和缩小.该转换由转换开始字节到INT,然后INT被转化成焦炭.
我可以想到为什么缩小类型转换不会导致错误/异常的一个原因是在没有数据丢失的情况下允许方便/简单/快速的类型转换.编译器将它留给我们以确保转换后的数据能够适应较小的范围.如果我们想要快速截断值,例如舍入a的值double(通过将其类型转换为a int),它也很有用.