У меня следующий вопрос:
Если спросить, использовать ли, например, сдвиг или умножение или деление, ответом будет, дайте оптимизировать JVM.
Пример здесь: is-shifting-bits-быстрее-умножения
Теперь я смотрел на источник jdk, например Priority Queue и код использует только сдвиг для умножения и деления (со знаком и без знака).
Принимая как должное, что сообщение в SO является правильным ответом, мне было интересно, почему в jdk они предпочитают делать это путем сдвига?
Это какие-то тонкие детали, не связанные с производительностью?Я подозреваю, что это как-то связано с умножением и делением переполнения / переполнения, но я не уверен.
У кого-нибудь есть идея?Легко ли решаются проблемы переполнения с помощью сдвига?Или это просто вопрос вкуса?