栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

什么是Java字节码注入?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

什么是Java字节码注入?

Java代码编译为字节码(

Foo.java ->>Foo.class
)。字节码注入正在
Foo.class
运行时进行修改,以在加载和运行之前立即将代码注入其中。

想象一个场景,我想找出多少次方法

public void bar();

在中被调用

Foo.class
。我可以在类加载期间使用
java.lang.instrument
该拦截器编写一个代理
Foo.class
,然后使用ASM对其进行修改,以便
bar()
调用
com.amir.agent.incrementCount()
方法条目。

现在,我可以运行我的程序了:

$java -javagent:MyAgent Foo  //assuming Foo has a main() defined

并且在运行时,

Foo.class
不仅可以完成其正常工作,而且还可以完成我在
MyAgent
每次
bar()
调用时定义的工作。

有关从头开始编写代理的指示,请从此处开始。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/569996.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号