1.概要
- javap
- 简单的字节码执行过程
- 常用的字节码
- 使用ASM生成Java字节码
- JIT及其相关参数
2.javap
- class文件反汇编工具
public class Calc {
public int calc() {
int a = 500;
int b = 200;
int c = 50;
return (a + b) / c;
}
}
- javap -verbose Calc
javap1.png
javap2.png
javap3.png
3.简单的字节码执行过程
简单的字节码执行过程1.png
简单的字节码执行过程2.png
4.常用的字节码
常用的字节码1.png
常用的字节码2.png
常用的字节码3.png
常用的字节码4.png
常用的字节码5.png
常用的字节码6.png
常用的字节码7.png
常用的字节码8.png
常用的字节码9.png
5.使用ASM生成Java字节码
- ASM
- java字节码操作框架
- 可以用于修改现有类或者动态产生新类
- 用户
- AspectJ
- Clojure
- Spring
- CGlib
- hibernate
- 模拟实现AOP字节码织入
- 在函数开始部分或者结束部分嵌入字节码
- 可用于进行鉴权、日志等
ASM字节码生成1.png
6.JIT及其相关参数
- 字节码执行性能较差,所以可以对于热点代码编译成机器码在执行,在运行时的编译,叫做JIT Just-In-Time
- JIT的基本思路是,将热点代码,就是执行比较频繁的代码,编译成机器码。
JIT1.png
JIT2.png
JIT3.png
网友评论