Перейдя к некоторому представлению, я столкнулся с следующим утверждением: когда JVM загружает класс, он может анализировать его содержимое и убедиться, что нет переполнения или недостаточного стека стека операндов. Я нашел много источников, которые делают одно и то же утверждение, но не указав, как это делается.
Мне непонятно, как такая проверка может быть выполнена с использованием статического анализа. Скажем, у меня есть (злонамеренный) метод, который получает некоторое значение в качестве аргумента и использует его для выполнения серии попсов. Во время загрузки количество итераций неизвестно, так как это зависит от аргумента, данного вызывающим методом. Поэтому мне кажется, что только во время выполнения можно будет определить, будет ли поток или нет. Что мне здесь не хватает?