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