System.out.println(Integer.MAX_VALUE + 1 == Integer.MIN_VALUE);
истинно.
Я понимаю, что целое число в Java 32 бит и не может превышать 2 ^ 31-1, но я не понимаю, почему добавление 1 к его MAX_VALUE приводит к MIN_VALUE, а не к какому-либо исключению. Не упоминать что-то вроде прозрачного преобразования в более крупный тип, как это делает Ruby.
Является ли это поведение указанным где-то? Могу ли я на это положиться?