Attualmente sono solo in un progetto che utilizza il codice byte java. Io di solito vedo che quando si crea una nuova istanza di classe e invocare un metodo su di esso, il bytecode sarà come:Perché creare DUP quando si crea una nuova istanza
NEW <MyClass>
DUP
INVOKESPECIAL <MyClass.<init>>
Ecco perché dovrebbe fare "DUP"? Dalle specifiche VM, ottengo la descrizione "Duplica il valore più alto nella pila degli operandi e sposta il valore duplicato nella pila degli operandi". Ma perché la duplicazione del valore più alto sullo stack degli operandi è necessaria qui? Grazie.