我想知道为什么以下字节码中的异常(用于抛出异常)是重复的.
NEW java/lang/IllegalArgumentException
DUP
INVOKESPECIAL java/lang/IllegalArgumentException <init> ()V
ATHROW
Run Code Online (Sandbox Code Playgroud)
Ale*_*man 15
我将逐行分析这一行,其中[] =使用该操作后的新堆栈:
IllegalArgumentException堆栈[SomeIllegalArgumentException]在字节代码中,首先按类创建对象,然后在该对象上调用构造函数.构造函数的签名以Vfor 结尾,void因为它返回任何东西.这意味着对象的原始引用的副本必须保存在堆栈(或变量)中,以便在调用构造函数后抛出它.
BTW构造函数<init>的内部名称是静态初始化程序代码的内部名称<clinit>
| 归档时间: |
|
| 查看次数: |
3208 次 |
| 最近记录: |