当前位置:网站首页>Generate Class bytecode files with Asm
Generate Class bytecode files with Asm
2022-07-29 15:03:00 【programmer greens】
一、背景
This is actually a series,It's all about how to dynamically change code at execution time,从动态代理、到Javaassist,然后到Asm,All to do the same thing.
1、Java代理
相对于Javassist,Asmis directly generated binaryClass文件,效率会更高,But writing code is particularly tedious.
二、AsmSome important class descriptions
1、ClassVistor接口的两个子类,ClassWriter和ClassReader,一个用来生成Class文件,一个用来写Class文件.If the modification already existsClass,你需要先使用ClassReader来分析Class文件.
2、MethodVistor类
visitCode:ASM开始扫描这个方法
visitMaxs(maxStack, maxLocals); This code uses at most one heap element 和一个 局部变量
visitEnd() 输出完成.
visitVarInsn:Access to local is a quantity.
三、用Asm生成HelloWorld例子
This syntax is still difficult to write,It took a long time to successfully outputHelloWorld,可以在Eclipse或IDEA中安装bytecodecan check oneClass文件的字节码,Then modify the code with reference to the bytecode file.
边栏推荐
- EA&UML日拱一卒-活动图::StartClassifierBehavior和StartObjectBehavior
- 建议尽快优化搜索体验
- 接口和抽象
- 【Try to Hack】IDS入侵检测系统
- Guangzhou Emergency Management Bureau released the top ten safety risks of hazardous chemicals in summer
- 数据库mysql的执行顺序(sql语句大全实例教程)
- 《外太空的莫扎特》
- 光鲜亮丽的业绩,也掩盖不了科大讯飞的“一身病痛”
- 【LeetCode】566. 重塑矩阵
- Couldn‘t create temporary file /tmp/apt.conf.uko4Kd for passing config to apt-key
猜你喜欢
随机推荐
数据库mysql的执行顺序(sql语句大全实例教程)
求教一下 现在最新版的flinkcdc能获取到oracle的ddl变更信息吗?
The raised platform system based on JSP&Servlet implementation
Pinia状态持久化
2022开放原子全球开源峰会数据库分论坛圆满召开
【LeetCode】121. 买卖股票的最佳时机
如何获取本地json
【LeetCode】53. 最大子数组和
RAMAN CONFIGURE 命令都能实现哪些功能
关于内部类
全球级的分布式数据库 Google Spanner原理 热:报错
redis常见面试题(背诵篇)
Replay Online Traffic Tool - GoReplay
rosbag数据画图MATLAB
微服务实战|集中配置中心Config非对称加密与安全管理
kubernetes中正strace etcd
交叉编译工具链的安装和配置过程
图斑自上而下,自左而右顺序编码,按照权属单位代码分组,每组从1开始编码
Zhaoqi Technology creates a platform for overseas high-level talent introduction, corporate project docking, and event roadshows
广州市应急管理局发布夏季危化品十大安全风险