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

Система .out.println (Integer.MAX_VALUE + 1 == Integer.MIN_VALUE);

верно.

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

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

26
задан MC Emperor 29 May 2019 в 06:41
поделиться