title: What are the rules for evaluation order in Java?
body: <p>I am reading some Java text and got the following code:</p>
  
  <pre><code>int[] a = {4,4};
  int b = 1;
  a[b] = b = 0;
  </code></pre>
  
  <p>In the text, the author did not give a clear explanation and the effect of the last line is: <code>a[1] = 0;</code></p>
  
  <p>I am not so sure that I understand: how did the evaluation happen?</p>