造型运算符(Casting operators)
“造型”(Cast)的作用是“与一个模型匹配”。适当时,Java会将一种数据类型自动转换成另一种。例如,假设我们为浮点变量分配一个整数值,计算机会将int自动转换成float。通过造型,我们可明确设置这种类型的转换,或者在一般没有可能进行的时候强迫它进行(强转)。
为进行一次造型,要将括号中希望的数据类型(包括所有修改符)置于其他任何值的左侧。例如:
int i = 200;
long l = (long)i;
long l2 = (long)200;
注意:“缩小转换”(Narrowing Conversion)也就是说把能容纳更多信息的数据类型转换成容量较小的类型,可能会造成信息丢失。此时,编译器会强迫进行造型。而对于“放大转换”(Widening conversion),则不必进行明确造型,因为新类型肯定能容纳原来类型的信息,不会造成任何信息的丢失。
Java允许我们将任何主类型“造型”为其他任何一种主类型,但布尔值(bollean)除外,布尔值不允许进行任何造型处理
转型(Promotion)
如果对主数据行执行任何算数或按位运算,只要比int小(即char,byte或short),那么在正式执行运算之前,那些值会自动转换成int。这样最终生成的值是int类型。
通常表达式中最大的数据类型决定了表达式最终结果大小的类型。若将一个float值和一个double值相乘,结果就是double类型,如果是int和long,那结果是long