12
目前我只是在使用java字節碼的項目中。我經常看到,創建一個新的類的實例並調用它的方法時,字節碼將是這樣的:爲什麼在創建新實例時創建DUP
NEW <MyClass>
DUP
INVOKESPECIAL <MyClass.<init>>
這裏爲什麼要這麼做「DUP」?從VM Spec中,我得到了「複製操作數堆棧頂部值並將重複值推送到操作數堆棧」的描述。但是爲什麼在這裏重複操作數堆棧的最高值是必要的?謝謝。