欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Java字节码增强技术

时间:2023-06-09
文章目录

字节码字节码增强字节码增强技术


字节码

字节码含义:待补充。

Java为了能让Java程序编译一次到处运行,用Java 编译器将程序对源代码编译生成固定格式的字节码(.class文件)供JVM使用。

因此理论上来说,只要符合JVM规范的字节码文件,就可以在JVM上运行,不同的JVM类语言(如Scala、Groovy、Kotlin)编译成字节码都可在JVM运行,除此之外,如果你对JVM的字节码规范非常了解的话,通过自己按照JVM规范自己写也是可以的。

字节码增强

简单理解就是通过某种手段或者技术修改编译好的字节码,让新生成的字节码能满足我们的定制需求。

这里说的需求就有很多了,比如常用的AOP底层很多就是使用字节码增强来达到切面拦截,再比如微服务中的链路追踪就使用了字节码增强(仅仅只一些Java客户端)来进行埋点标记来记录调用链关系的,所以了解字节码增强对一些框架能有更深入对理解,对问题排查有很大对帮助。

字节码增强技术

上面说的通过某种手段或者技术到底指哪些呢?我们最常用的Java Proxy也是一种增强技术,另外常用的还有 ASM,AspectJ,Javassist等常用的技术。

ASM在指令层次操作字节码的,需要对JVM的指令有一定的了解,同时众多的指令也很难记住,操作比较高;AspectJ扩展了Java,定义了一些专门的AOP语法,其中Spring AOP就使用了AspectJ;Javassist是强调源代码层次操作字节码的框架,操作起来很容易入手。


参考文章:字节码增强技术-Javassist

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。