字节码插桩
文章平均质量分 91
字节码插桩相关
_小马快跑_
代码说,欢迎点赞、关注。感谢!
展开
-
一起来学字节码插桩:ASM Tree API
ASM是一个通用的Java字节码操作和分析框架。它可用于修改现有类或直接以二进制形式动态生成类。ASM提供了一些常见的字节码转换和分析算法,可以根据这些算法构建定制的复杂转换和代码分析工具。ASM提供了与其他Java字节码框架类似的功能,但更关注性能。因为它的设计和实现尽可能的小和快,它非常适合在动态系统中使用(但当然也可以以静态的方式使用,例如在编译器中)。关于ASM更多介绍,可以参见ASM官网。ASM从组成结构上可以分成两部分,一部分为Core API,另一部分为Tree API。原创 2023-03-22 11:30:30 · 1167 阅读 · 0 评论 -
一起来学字节码插桩:从分析class文件结构开始
OpCode用于VM虚拟机解释运行Java程序,每个操作码都可以用来表示一个指令。如0x62是一个十六进制数,表示两个float类型的数相加。,ASM中是用十进制表示的,除此之外,其他操作码指令都可以在这个类中找到。方法描述符用于class字节码文件中保存参数类型列表和返回值的方式。加载到内存时的执行顺序,包括各种描述符及操作码,接下面就来看一下。经过javac编译之后,会生成Test.class字节码文件,用。语言,只要是符合规则的。字节码文件,都可以被。命令可以 输出分解后的。原创 2023-03-05 23:58:03 · 1001 阅读 · 0 评论 -
Java内存模型、GC Roots可达性分析、垃圾回收机制
文章目录一 Java内存结构二 可达性分析与GC Roots2.1 可达性分析算法2.2 什么样的对象可以作为GCRoots2.3 什么时候会触发垃圾回收三 如何回收垃圾3.1 标记-清除算法3.2 复制算法3.3 标记-整理算法3.4 分代收集算法分代收集算法中的内存分配与回收策略四 参考一 Java内存结构其中,堆和方法区属于线程共享区域,虚拟机栈、本地方法栈、程序计数器属于线程私有区域...原创 2020-04-06 21:54:08 · 887 阅读 · 0 评论 -
Java | 自定义注解及解析
先来看内置注解@Override是怎么被定义的,它位于@Target定义声明注解的作用域(作用在类上还是方法上),@Retention定义注解在哪个级别可用,在源代码中(SOURCE)、类文件中(CLASS)、还是运行时(RUNTIME除了还有及@Inherited元注解作用@Target表示注解作用在什么地方,声明在构造器、FIELD域声明、METHOD方法声明、PACKAGE包声明、TYPE类、接口或者enum声明、PARAMETER参数声明、局部变量声明@Retention。原创 2018-03-28 16:36:52 · 9260 阅读 · 3 评论 -
Android 采用AOP方式封装6.0权限管理
本篇文章已授权微信公众号 hongyangAndroid(鸿洋)独家发布目录:【一】背景【二】效果图【三】整体思路【四】使用举例4.1 申请单个权限4.2 申请多个权限4.3 跳转到设置类【五】总结【六】源码【一】背景6.0运行时申请权限已经是一个老生常谈的内容了,最近项目TargetSDKVersion升到23以上,所以我们也需要做权限管理,我...原创 2018-03-30 15:46:19 · 4586 阅读 · 11 评论