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