есть ли в Java понятие "постоянное сворачивание"? если да, что это?
Да, есть.
Из этой статьи JavaWorld (, которую вы могли бы погуглить самостоятельно! ):
static final int length = 25; static final int width = 10; int res = length * width;
Время выполнения не используется для умножения этих значений;вместо этого умножение выполняется во время компиляции.Код для следующего назначения переменной изменяется, чтобы создать байт-код, представляющий произведение ширины и длины:
int res = 250;
Сгибание констант - это процесс упрощения константных выражений во время компиляции. Термины в константных выражениях обычно являются простыми литералами, такими как целое число 2, но также могут быть переменными, значения которых никогда не изменяются, или переменными, явно помеченными как константа
Да, он существует на Java: Оптимизация компилятора