Поясните код Java?
Вот что происходит после компиляции://
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

public class test {
    public test() {
    }

    public static void main(String[] args) {
        byte a = 1;
        byte b = 2;
        byte var10000 = a;
        a = b;
        int b1 = var10000 + 0 * b;
        System.out.println(b1 + " " + a);
    }
}
Как можно заметить, никакой магии здесь нет.
В общем и целом я не рекомендую использовать такую "магию". Гораздо лучше писать понятный и очевидный код.
надо полагать, это пример undefined behaviour.
страшная магия, которая, будучи примененной в продакшене, испортит здоровый сон разработчику.
компилятор джавы, как показано в одном из ответов, добавил временную переменную, чем и обеспечил такое поведение.
Например, если изобразить этот пример на си (gcc), там такой магии не будет. Опять же, полагаю, другой компилятор может поступить иначе.