ASM字节码操作 Label 介绍 顺序选择和循环
Posted 九师兄
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASM字节码操作 Label 介绍 顺序选择和循环相关的知识,希望对你有一定的参考价值。
1.概述
在程序中,有三种基本控制结构:顺序、选择和循环
。我们现在已经知道,MethodVisitor 类是用于生成方法体的代码
- 如果没有Label学的参与,
那么MethodVisitor类只能生成”顺序”结构的代码
; - 如果有Label类的参与,MethodVisitor 类就能生成选择"和“循环“结构的代码。
在本文当中,我们来介绍Label类。
如果查看Label类的API文档,就会发现下面的描述,分成了三个部分。
- 第一部分,Label 类上是什么(What) ;
- 第二部分,在哪些用到Label类(Where) ;
- 第三部分,在编写ASM代码
过程中,如何使用Label类(How) , 或者说,Label 类与Instruction的关系。
- A position in the bytecode of a method.
- Labels are used for jump, goto, and switch instructions, and for try catch blocks.
- A label designates the instruction that is just after. Note however that there can be other elements between a label and the instruction it designates (such as other labels, stack map frames, line numbers, etc.).
如果是刚刚接触Lab
以上是关于ASM字节码操作 Label 介绍 顺序选择和循环的主要内容,如果未能解决你的问题,请参考以下文章
ASM字节码操作 Label 生成 try catch 语句