>>671
例えば、
 byte値 * short値
 byte値 * int値
 long値 * short値
などなどの場合、どうしても型変換が必要になる。
 byte値 * short値の型はshort
なんてやってたら、何十通りもの変換規則ができて複雑になるが、
複雑にするメリットがない。だいいち機械語命令はそんなに種類がない。

なので、規則をなるべく単純にするため、*演算子の場合だと、
 どちらかがdoubleなら、もう一方もdoubleにする。結果はdouble。
 そうでなくて、どちらかがlongなら、もう一方もlongにする。結果はlong。
 そうでなければ、両方intにする。結果はint。
となっている。最近のCPUだと32bit演算が得意なものが多いし。