java 类文件_java类文件是什么?

一、什么是Java类文件    Java类文件是Java程序的二进制表示形式。每一个类文件代表一个类或者接口。不可能在一个类文件中放入多个类或者接口。这样就使得无论类文件是在哪一种平台上生成,都可以在任何主机上执行。    虽然类文件是Java体系结构的一部分,但是他并不是与Java语言不可分的。

你可以将其他语言的程序编译为类文件,也可以将Java程序文件编译为其他二进制形式。Java类文件是一个基于8-bit字节的二进制流。数据块顺序的、无分割符的、big-endian的形式存储。

二、类文件的内容    Java的类文件中包含了所有Java虚拟机所需要的关于类和接口的信息。

所有类文件中的信息都以以下的四种基本类型的存储:    Table 6-1。 Class file "primitive types"    u1    a single unsigned byte    u2    two unsigned bytes    u4    four unsigned bytes    u8    eight unsigned bytes    类文件中的主要部分以表6-2的顺序存储:    Table 6-2。

Format of a ClassFile Table    Type&    #9;Name    Count    u4    magic    1    u2    minor_version    1    u2    major_version    1    u2    constant_pool_count    1    cp_info    constant_pool    constant_pool_count-1    u2    access_flags    1    u2    this_class    1    u2    super_class    1    u2    interfaces_count    1    u2    interfaces    interfaces_count    u2    fields_count    1    field_info    fields    fields_count    u2    methods_count    1    method_info    methods    methods_count    u2    attributes_count    1    attribute_info    attributes    attributes_count

1、魔术编码(magic)    每一个Java类文件的开头四个字节都是魔术编码(OxCAFEBABE)。

通过魔术编码可以很容易识别类文件。

2、副版本号和主版本号(minor_version and major_version)    剩下的四个字节是副版本号和主版本号。但Java技术在进化时,一些新的特性可能会被加入到类文件中。每一次类文件格式的变化,都会相应的改变版本号。

虚 拟机通过版本号来识别自己能够处理的类文件。Java虚拟机往往只能处理一个给定的主版本号和其下的一些副版本号。虚拟机必须拒绝那些不再处理范围内的类 文件。

全部

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值