maxos
public class Asm { volatile int a=2; public void addOne(){ a++; } public static void main(String[] args) { new Asm().addOne(); // 最少要调用一次 } } javac Asm.java java -server -Xcomp -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly -XX:CompileCommand=compileonly,Asm.addOne Asm
参数-Xcomp:强制第一次执行函数就编译成机器码(进而才能被反汇编)。java默认一个函数要执行10000次才被编译否则都是解释执行。这里不加这个参数就无法反汇编