Код: Выделить всё
Util
{
public static void doSomething()
{
if (FLAG) foo();
else bar();
}
public static void foo() { /* do something */ }
public static void bar() { /* do something else */ }
public static final boolean FLAG = computeFlag();
private static boolean computeFlag() { /* do some computation during init time*/ }
}
Код: Выделить всё
FLAGИ предположим, что Util.doSomething() используется МНОГО (и во многих критических местах, где производительность имеет значение).
Будет ли компилятор Java или JVM достаточно умным, чтобы кэшировать тело doSomething, чтобы коду не приходилось повторно оценивать FLAG или выполнять всю инструкцию ветвления еще раз?
Как это проверить?
Подробнее здесь: https://stackoverflow.com/questions/206 ... ow-do-i-ch
Мобильная версия