一.
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) 编辑 收藏