gpt4 book ai didi

Java 字节码 DUP

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:06:47 26 4
gpt4 key购买 nike

我想知道为什么以下字节码中的异常(用于抛出异常)是重复的。

NEW java/lang/IllegalArgumentException
DUP
INVOKESPECIAL java/lang/IllegalArgumentException <init> ()V
ATHROW

最佳答案

我将逐行分析此操作,其中 [] = 使用该操作后的新堆栈:

  1. NEW 将新的 IllegalArgumentException 放入堆栈 [SomeIllegalArgumentException]
  2. DUP 复制它[SomeIllegalArgumentException, SomeIllegalArgumentException]
  3. INVOKESPECIAL 从顶部弹出并通过调用它的 方法 [SomeIllegalArgumentException] 对其进行初始化(init 方法不会返回要放回堆栈的对象,因此对象必须首先复制以便将其保存在堆栈中)
  4. ATHROW 抛出另一个(我们初始化的副本)[]

关于Java 字节码 DUP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12438567/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com