byte型とint型を算術演算子で処理した結果はint型になります


public class Main{
    public static void main(String[] args) {
        byte x = 3;
        byte y = 2 * x++;
        System.out.println(y);
    }
}

上記コードはコンパイルエラーになる。

byte型のyに代入するべき右辺の演算結果がint型になるので、キャストしないと代入できない。

int型とbyte型(short型、char型も同様)の演算結果は、値がbyte型(やshort型)の範囲であっても、intで返される。

参考:Javaの道:演算子(1.算術演算子)