Если вы используете JVM, например HotSpot, он JIT-компилируется оппортунистически, концентрируясь только на коде, который часто выполняется. Он определяет, какой код оптимизировать на лету, подсчитывая частоту каждого кодового блока (или метод - я не уверен, какой). Следовательно, во время запуска все интерпретируется.
Цель этого состоит в том, чтобы обеспечить более агрессивную и дорогостоящую оптимизацию, требуя лишь небольшой части кода для оптимизации.