http://techiworks.com/how-does-java-handle-integer-overflows-and-underflows/