查看java字节码
1 javac –verbose查看运行类是加载了那些jar文件
Foo.java演示:
package com.tfq.c02;
/**
*
* @description
* @author tangfq;
* @version 2020年6月7日 下午4:57:27
*
**/
public class Foo {
public static void main(String[] args) {
boolean isEte=true;
if(isEte){
System.out.println("eated");
}
if(true==isEte){
System.out.println("really eated");
}
}
}
使用javac -encoding utf-8 -verbose Foo.java,展示JVM加载类的顺序如下图:

可以看到虚拟机运行一个程序时加载的jar包
更多内容查看javac –help命令
2 javap查看字节码
首先使用javap –help可以查看到各种命令,各个命令什么作用,可以自己运行试试……
这里只测试javap –c和javap –verbose
javap –c Foo.java

可以查看字节码,从中可以得到各种变量的信息等等
但是javap –verbose可以看到更加清楚的信息。
总结:
编译生成class文件并查看类的加载顺序:javac -encoding utf-8 -verbose Singleton.java
生成class文件对应的JVM汇编代码文件:java -jar asmtools.jar jdis Singleton.class > Singleton.jasm.1
本文介绍如何使用javac和javap命令查看Java字节码和类加载过程。通过javac-verbose了解JVM加载类的顺序及依赖的jar文件,利用javap-c和javap-verbose深入分析字节码,获取变量信息等。
871

被折叠的 条评论
为什么被折叠?



