Java: precedensy operatora poprzedzające poprawkę

Mam dwa podobne pytania dotyczące pierwszeństwa operatorów w Javie.

Pierwszy:

int X = 10;
System.out.println(X++ * ++X * X++); //it prints 1440 

WedługSamouczek Oracle:
postfix (expr ++, expr--) operatory mają wyższy priorytet niż prefiks (++ expr, --expr)

Przypuszczam więc, że kolejność oceny:

1) first postfix operator: X++ 
   1.a) X++ "replaced" by 10
   1.b) X incremented by one: 10+1=11
   At this step it should look like:  System.out.println(10 * ++X * X++), X = 11;

2) second POSTfix operator: X++ 
   2.a) X++ "replaced" by 11
   2.b) X incremented by one: 11+1=12
   At this step it should look like:  System.out.println(10 * ++X * 11), X = 12;

3) prefix operator: ++X
   3.a) X incremented by one: 12+1=13
   3.b) ++X "replaced" by 13
   At this step it should look like:  System.out.println(10 * 13 * 11), X = 13;

4) evaluating 10*13 = 130, 130*11 = 1430.

Ale Java wydaje się ignorować porządkowanie PRE / POST i umieszcza je na jednym poziomie. Więc prawdziwy porządek:

 X++ -> ++X -> X++ 

co powoduje odpowiedź (10 * 12 * 12) = 1440.

Drugi:

Przykład z tego pytania:

    int a=1, b=2;             
    a = b + a++;

Część zaakceptowanej odpowiedzi: „Do czasu przydzielenia,++ już zwiększył wartośća do2 (z powodu pierwszeństwa), tak= nadpisuje tę zwiększoną wartość. ”

OK, spójrzmy krok po kroku:

 1) replacing "b" with 2
 2) replacing "a++" with 1
 3) incrementing "a" by 1 -> at this point a==2
 4) evaluating 2+1 = 3
 5) overwriting incremented value of "a" with 3

Wydaje się, że wszystko jest w porządku. Ale dokonajmy niewielkiej zmiany w tym kodzie (zamień „=” na „+ =”)

    a += b + a++;

kroki 1-4 powinny być takie same jak powyżej. więc po kroku 4 mamy coś takiego:

    a += 3;

gdziea==2

I wtedy myślę: OK,a = 2+3, więca powinno być5. ALE odpowiedź jest tylko4

Jestem bardzo zmieszany. Spędziłem już kilka godzin, ale wciąż nie rozumiem, gdzie się mylę.

P.S. Wiem, że nie powinienem używać tego „stylu” w prawdziwych aplikacjach. Chcę tylko zrozumieć, co jest nie tak w moich myślach.

questionAnswers(5)

yourAnswerToTheQuestion