Почему делают DUP при создании нового экземпляра

В настоящее время я нахожусь только в проекте, который использует байт-код Java. Я обычно вижу, что при создании нового экземпляра класса и вызывают метод на него, байт-код будет похож:

NEW <MyClass>
DUP
INVOKESPECIAL <MyClass.<init>>

Здесь, почему должен сделать "DUP"? От Спецификации VM я добираюсь, описание "Копируют главное значение на операнде, складывают и продвигают дублированное значение на стопку операнда". Но почему дублирование главного значения на стопке операнда необходимо здесь? Спасибо.

13
задан Tomasz Nurkiewicz 2 September 2011 в 11:35
поделиться