title: why Integer.MAX_VALUE + 1 == Integer.MIN_VALUE?
body: <p><code>System.out.println(Integer.MAX_VALUE + 1 == Integer.MIN_VALUE);</code></p>
  
  <p>is true.</p>
  
  <p>I understand that integer in Java is 32 bit and can't go above 2<sup>31</sup>-1, but I can't understand why adding 1 to its <code>MAX_VALUE</code> results in <code>MIN_VALUE</code> and not in some kind of exception. Not mentioning something like transparent conversion to a bigger type, like Ruby does.</p>
  
  <p>Is this behavior specified somewhere? Can I rely on it?</p>