learn and grow up

class文件简单解析

字数统计: 342阅读时长: 1 min
2020/07/05 Share

写在前面

最近闲暇时间在研究jvm虚拟机原理,所以把日常看到的、学习到的记录下来,这篇文章主要是讲基础的Class文件的查看和解析

会持续更新

概念

Class文件是经过JDK中javac工具编译后的一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符.
如何查看编译后的Class文件?推荐两种不需要安装任何额外工具的查看方式.在IDE中打开.class文件,会被内置的反编译插件反编译,还原成java类文件,既不能起到查看.class文件的目的,也不符合不安装额外工具的要求.

这里使用javap命令对class文件查看

对于class文件描述网上有很多文章,就不细写了,比如:https://blog.csdn.net/tyyj90/article/details/78472986

这里主要是按照实际例子来解析class文件

实例

源码:

1
2
3
4
5
6
7
8
9
10
11
12
//JapTest.java
package javp;

public class JapTest {
public static void main(String[] args) {
String i="2222";
for(int c =1;c<20;c++){
System.out.println(c);
}
return;
}
}

使用如下命令

1
javap -verbose JapTest

得到如下内容javap

接下来我们一句一句来看看,内容较多,见下文

CATALOG
  1. 1. 写在前面
  2. 2. 概念
  3. 3. 实例