使用ASM来书写Java代码-1
来源:互联网 发布:网络拓扑分析 编辑:程序博客网 时间:2024/06/03 22:45
1. 流程控制:
a) 说明:JVM提供了基本的流程控制结构,这些结构都是基于Label而实现的。这些跳转指令,包括基于比较结果的有条件跳转和无条件的GOTO指令。另外,JVM也提供了实现switch结构的LOOKUPSWITCH和TABLESWITCH指令,其中LOOKUPSWITCH是基于键比较的,而TABLESWITCH则是基于键索引的,因此后者的匹配速度更快。
2. 接口声明:
ClassWriter cw = new ClassWriter(false);
cw.visit(V1_5, ACC_PUBLIC + ACC_ABSTRACT + ACC_INTERFACE, "asm/IA", null,
"java/lang/Object", null);
cw.visitSource("IA.java", null);
cw.visitEnd();
等价于:
public interface IA{}
3. 类声明:
a) 抽象类:
ClassWriter cw = new ClassWriter(false);
cw.visit(V1_5, ACC_PUBLIC + ACC_SUPER + ACC_ABSTRACT, "asm/A", null,
"java/lang/Object", null);
cw.visitSource("A.java", null);
等价于:
public abstract class A{}
b) 具体类:
ClassWriter cw = new ClassWriter(false);
cw.visit(V1_5, ACC_PUBLIC + ACC_SUPER, "asm/A", null, "java/lang/Object", null);
cw.visitSource("A.java", null);
cw.visitEnd();
等价于:
public class A{}
转载:http://blog.sina.com.cn/s/blog_4b38e200010008to.html
a) 说明:JVM提供了基本的流程控制结构,这些结构都是基于Label而实现的。这些跳转指令,包括基于比较结果的有条件跳转和无条件的GOTO指令。另外,JVM也提供了实现switch结构的LOOKUPSWITCH和TABLESWITCH指令,其中LOOKUPSWITCH是基于键比较的,而TABLESWITCH则是基于键索引的,因此后者的匹配速度更快。
2. 接口声明:
ClassWriter cw = new ClassWriter(false);
cw.visit(V1_5, ACC_PUBLIC + ACC_ABSTRACT + ACC_INTERFACE, "asm/IA", null,
"java/lang/Object", null);
cw.visitSource("IA.java", null);
cw.visitEnd();
等价于:
public interface IA{}
3. 类声明:
a) 抽象类:
ClassWriter cw = new ClassWriter(false);
cw.visit(V1_5, ACC_PUBLIC + ACC_SUPER + ACC_ABSTRACT, "asm/A", null,
"java/lang/Object", null);
cw.visitSource("A.java", null);
等价于:
public abstract class A{}
b) 具体类:
ClassWriter cw = new ClassWriter(false);
cw.visit(V1_5, ACC_PUBLIC + ACC_SUPER, "asm/A", null, "java/lang/Object", null);
cw.visitSource("A.java", null);
cw.visitEnd();
等价于:
public class A{}
转载:http://blog.sina.com.cn/s/blog_4b38e200010008to.html
- 使用ASM来书写Java代码-1
- 使用ASM来书写Java代码
- 使用ASM来书写Java代码-2
- 使用ASM来书写Java代码-3
- 明天用什么来书写?
- ASM---JAVA代码生成
- ASM 写DLL 模拟鼠标操作代码
- ASM写的硬盘引导代码
- C++通过ASM写汇编代码
- 不要拿你的无知来书写你的骄
- Rstudio | Word | 用Rstudio来书写公式到word中
- 根据网友建议,决定使用以前为初学者设计的一个编程目标和学习的顺序来书写JavaEE教程
- 王者归来书中提到的JavaScript魔法代码
- 【Java-1】写代码前的准备工作
- Oracle DataBase单实例使用ASM案例(1)--ASM基本概念
- 使用eclipse运行曾经写过的java代码
- 使用java写的简单的计算器代码
- 在IDEA中使用自己写好的Java代码
- Objective-C,ios,属性声明(property declarations), 自定义属性,自动生成 get 和 set 方法,getter 和 setter
- poj 1882完全背包变形
- 安卓api之高德地图API(申请高德地图apiv2)
- 寻找必败态——一类博弈问题的快速解法
- 七个高效的文本编辑习惯(以Vim为例)
- 使用ASM来书写Java代码-1
- ural 1297 Palindrome求最长连续回文子串(后缀数组求法)
- hdu-4666-Hyperspace-最长曼哈顿距离
- hdu1176免费馅饼(DP---跟hdu2084数塔那题一个类型的)
- Poj 2823 (单调队列裸题)
- 代码动态生成利器ASM
- 博弈论(一):Nim游戏
- HDU 4669 Mutiples on a circle (2013多校联合7 1004)
- Android中HAL如何向上层提供接口总结-hw_device_t