Почему swap с xor отлично работает в c ++, а в java нет? какая-то головоломка [дубликаты]

Возможный дубликат:
Почему это утверждение не работает в Java x ^ = y ^ = x ^ = y;

Образец кода

int a=3;
int b=4;
a^=(b^=(a^=b));

В c ++ это меняет местами переменные, но в java мы получаем a = 0, b = 4, почему?

Ответы на вопрос(2)

Ваш ответ на вопрос