class文件解读
    第一部分  class文件结构及解析
    1、Class文件结构
    class文件是java虚拟机指定的二进制文件,扩展名为.class,一个类在编译后被编译器编译为一个class文件。class文件是一种独立于平台的文件,class文件的格式由Java虚拟机规范指定,class文件结构由字节码、常量池、类型描述符、字段、方法等构成。
    Class文件的结构如下:
    1)magic number:Class文件的前4个字节,它的值是0xCAFEBABE,表示当前文件是一个有效的Java class文件。
    2)次版本号:Class文件共有两个版本号,major_version和minor_version,表示Class文件的Java虚拟机支持的版本。
    3)常量池:常量池是Class文件中最大的构件,用于保存常量,比如类名、方法名、字段名
和字符串值等,在类加载期间,类的相关信息都是从常量池中提取的。
    4)修饰符:Class文件的修饰符,用于描述类的访问权限、是否为抽象类等信息。
    5)类名:Class文件中类的名称,在常量池中由一个索引指向它的名字。
    6)超类:Class文件中超类的名称,在常量池中由一个索引指向它的名字。
字符串常量池和运行时常量池的联系    7)接口:Class文件中实现的接口列表,在常量池中由一个索引指向每个接口的名字。
    8)字段:Class文件中所定义的字段,它由字段名、类型和访问修饰符等信息构成。
    9)方法:Class文件中定义的方法,它由方法名、参数列表、返回类型和字节码等信息构成。
    10)属性:Class文件中提供的其他附加信息,包括代码版本、类的注释和类的异常处理器等信息
    2、Class文件解析
    Class文件解析就是读取class文件,将各个部分的字节码解码成可读的java源码,可以用来查看源代码,调试程序,反编译class文件等,重要的工具包括:jad、Javap等。
    3、Jad反编译器
    Jad是一个著名的反编译器,它可以把class文件反编译成源代码,即把class文件的字节码解码为可读的java源码,可以用来查看源代码,调试程序,反编译class文件等,jad反编译类文件稍显复杂,但是能够得到准确的源代码,是一款非常有用的反编译工具,Jad反编译器还支持Windows、Linux等多个平台,具体使用方法如下:
    1)安装jad,下载文件并解压。
    2)将放到一个路径下,比如C:jad。
    3)在dos界面中用cd命令进入路径,然后输入jad的名称。
    4)根据提示输入命令:jad xxx.class(xxx 为待反编译的文件)。
    5)输出xxx.java的源文件。
    第二部分、class文件加载及jvm运行
    1.Class文件加载
    Class文件加载是Java虚拟机读取Class文件的过程,它既可以从本地文件系统中加载class文件,也可以从网络下载,它可以把class文件加载到内存中,并为之创建一个对象,以便在之后的操作中使用。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。