В настоящее время я просто в проекте, который использует java-байт-код. Обычно я вижу, что при создании нового экземпляра класса и вызове метода на нем байт-код будет выглядеть так:
NEW <MyClass>
DUP
INVOKESPECIAL <MyClass.<init>>
Вот почему нужно делать "DUP"? Из VM Spec я получаю описание "Дублировать верхнее значение в стеке операндов и нажимать дублируемое значение на стек операнда". Но зачем здесь дублировать верхнее значение стека операндов? Спасибо.