Мое мнение таково, что вы не знаете и не должны догадываться. Попытки перехитрить компиляторы в наши дни бесплодны.
Было время, когда люди изучали «Шаблоны», которые, казалось, оптимизировали некоторые операции, но в следующей версии Java эти шаблоны были на самом деле медленнее.
Всегда пишите это настолько ясно, насколько это возможно, и не беспокойтесь об оптимизации, пока у вас действительно не будет какой-то пользовательской спецификации в ваших руках, и вы не будете соответствовать некоторым требованиям, и даже тогда будьте очень осторожны, чтобы запускать тесты до и после убедитесь, что ваше «исправление» действительно улучшило его настолько, чтобы выполнить это требование.
Компилятор может делать некоторые удивительные вещи, которые действительно взорвали бы ваши носки, и даже если вы делаете какой-то тест, который повторяется в каком-то большом диапазоне, он может работать совершенно иначе, если у вас меньший диапазон или вы измените то, что происходит внутри цикла .
Как раз вовремя компиляция означает, что он может иногда превосходить C, и нет никаких причин, по которым он не может превзойти статический язык ассемблера в некоторых случаях (сборка заранее не может определить, что вызов не требуется, иногда может сделать Java). только это.
Подводя итог: самое ценное, что вы можете поместить в свой код, - это написать его, чтобы он был читабельным.