почему Integer.MAX_VALUE + 1 == Integer.MIN_VALUE?

System.out.println(Integer.MAX_VALUE + 1 == Integer.MIN_VALUE);

правда.

Я понимаю, что целое число в Java является 32-разрядным и не может превышать 2 ^ 31-1, но я не могу понять, почему добавление 1 к его MAX_VALUE приводит к MIN_VALUE, а не к какому-то исключению. Не говоря уже о чем-то вроде прозрачного преобразования в больший тип, как это делает Ruby.

Это поведение указано где-то? Могу ли я на это положиться?

Ответы на вопрос(8)

Ваш ответ на вопрос