您的位置:首页 > 其它

一个简单Class文件的分析

2017-11-06 21:53 288 查看



一个简单Class文件的分析(多图)



Chown
1 年前


一个简单Class文件的分析(多图)

Class文件是Java中类或接口的紧凑二进制表示形式,可以被JVM加载,链接,执行。这里通过看一个简单的Class文件作为入门。


开始

package com.vonzhou.learn.jvm.klass;

public class Foo {
private int m;

public int inc() {
return m + 1;
}
}



Class结构体

一个Class文件可以用如下的结构体抽象:



Step by Step

接下来就是对照着字节码和JVM规范阅读的过程,对自己多点耐心。




常量池中每常量项是由一个1B的tag(标识常量项的类型)和字节数组表示的常量内容构成的,常量标签有以下几种:



常量池












































到这里我们估计有点迷失了,再来回顾下Class文件的结构:



访问标志

常量池过后是2B的访问标志,flag是各种情况做掩码实现,有:


这里



类引用

接下来的2B是this_class指向我们的类名, super_class指示父类。




这里没有实现接口:




成员变量



方法









后续

具体的指令在这里没有分析。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: