java - 字节码操作模式

标签 java bytecode bytecode-manipulation

字节码操作有哪些合法用途,人们如何在实践中实现这些基于字节码操作的解决方案?

更新:我应该更清楚地说明这个问题实际上是关于人们使用什么模式和技术来使他们的代码在字节码操作的帮助下运行。

类似于已经提到的面向方面的编程或动态构建代理对象和类似技术。

最佳答案

字节码操作让您可以实现任意复杂(和有趣)的程序转换,例如:

  • 所选函数的进入/退出记录代码
  • 阻止对某些 API 的访问的安全转换
  • API 替换,例如,在测试工具中运行代码。

范围是无止境的;这只是一个小样本。

至于这通常是如何完成的,开始 here .

关于java - 字节码操作模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2697657/

相关文章:

Java Applet 在其他 443 端口上加载 SSLProtocolException unrecognized_name

运行修改后的 .class 文件时出现 java.lang.VerifyError

java - java Stream.peek() 如何影响字节码?

java - 如何将三地址码(TAC)转换为Java字节码?

java - 最终字段值在字节码生成中不起作用

java - 生成代码属性时遇到问题

java - 如果原始作业失败,则执行单独的 Spring Batch 作业

java - 从图片中检测并裁剪人脸?

java - 有没有 'standard way'来解析关于:blank URL's in Java?

Javap 输出 : difference static {} and public {}