随笔-0  评论-2  文章-61  trackbacks-0

一.    Java class 文件是什么 ?

一个 class 文件只能包含一个类或接口 . 内部类都有自己对应的 class.

可以使用其他语言编写程序 , 然后编译成 class 文件

也可以将 java 程序编译成其他二进制格式

二.    class 文件的内容

1.        magic( 魔数 ): 每个 class 文件的前 4 个字节称为它的魔数 :0xCAFEBABE, 魔数的作用是用来分辨 java class 文件和非 java class 文件

2.        minor_version major_version( 主次版本 )

3.        constant_pool_count constant_pool: 常量池包含了与文件中类和接口相关的常量 , 常量池中存储了诸如文字字符串、 final 变量指、类名、方法名的常量 .jvm 把常量池组织为入口列表的形式 . 在实际列表 constant_pool 之前 , 是列表的大小 constant_pool_count.

4.        access_flags:

5.        this_class: this_class 项共两个字节 , 它是对一个常量池的索引 -----Constant_class_info . 该表有两个部分组成 ------ 标签和 name_index.  标签是一个具有 constant_calss 值的常量 , name_index 位置的常量池入口为一个包含了类或接口全限定名的 constant_utf8_info .

6.        super_class: 它也是两个字节的常量池索引 , 类似 this_class

7.        interface_count interfaces: interface_count 表示实现的接口数量 , 紧接着是 interfaces 数组 , 保存了直接实现的接口的常量池索引

8.        fields_count fields: 对该类行中声明字段的描述 ,fields_count 表示静态变量和成员变量的字段的总和 , 在其后的是不同长度的 fields_info 表的序列

9.        methods_count methods: 类似 fields_count fields

 

posted on 2006-12-22 09:03 comchyi 阅读(114) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: