asm 可以通过程序来生成字节码
java instrument 打包期间就把字节码修改了
Javassist 与asm差不多
cglib和java动态代理 差不多,java动态代理只能对接口使用,而cglib没有这个限制;