Warum kann ich nicht zwei Bytes hinzufügen und ein int bekommen und ich kann zwei letzte Bytes hinzufügen, um ein Byte zu bekommen?

public class Java{
    public static void main(String[] args){
        final byte x = 1;
        final byte y = 2;
        byte z = x + y;//ok
        System.out.println(z);

        byte a = 1;
        byte b = 2;
        byte c = a + b; //Compiler error
        System.out.println(c);
    }
}

Wenn das Ergebnis eines Ausdrucks mit einer Größe von int oder kleiner immer ein int ist, auch wenn die Summe von zwei Bytes in ein Byte passt.

Warum passiert das, wenn wir zwei letzte Bytes hinzufügen, die in ein Byte passen? Es liegt kein Compilerfehler vor.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage