title: How post Increment ++ Operator works while initialization
body: <p>I have written following code to reverse the given String:</p>
  
  <pre><code>String str = "abcdef";
  char[] strToChar = str.toCharArray();
  char[] outString = new char[strToChar.length];
  
  for(int j = 0; j &lt; strToChar.length; ) {
      int len = strToChar.length-j;
      outString[j++] = strToChar[strToChar.length-j];
  }
  </code></pre>
  
  <p>As per my understanding initialization happens from <em>Right</em> to <em>Left</em>. Hence, <code>strToChar[strToChar.length-j]</code> here should throw <code>ArrayIndexOutOfBoundException</code>.   </p>
  
  <p>But it runs fine. How is that happening? Shouldn't it evaluate to this?</p>
  
  <pre><code>outString[0] = strToChar[6];    //This should throw exception
  </code></pre>