- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
类文件结构
Class文件是一种以8位字节为基础的二进制流(所以用文本编辑器打开class文件呈现的是16进制代码)各个数据项目按照定义规范严格的排列在文件中,中间没有分隔符。但遇到需要占用8位以上的数据时,会采用高位在前的方式分割若干个八位字节存储。根据java虚拟机规范。Class文件采用一种类似于c语言的结构体的伪结构进行存储。这种伪结构只有两种类型:无符号和表。无符号数属于基本的数据类型,以u1,u2,u4,u8表示1,2,4,8个字节的无符号数,无符号数可以用来描述数字,索引引用,常量或utf-8编码构成的字符串值。表是有多个无符号数或其他表作为数据项构成的复合数据类型,整个class文件就是一张表。每个class前四个字节是用来确定这个文件能否被虚拟机接受。0xCAFEBABE代表着可以接受的, 0x0000代表着次版本号,0x0032(50)代表着主版本号,可以被jdk1.6或以上版本执行。姐姐这的constant_pool_count代表着常量池,由于常量池是不固定,所以需要放置一个计数器。0x00F9(249)(注意索引是从1开始的,所以公有248个常量)。这个常量并不是java语言中的常量,这个常量包含两种:一种是字面量(类似于java的常量),还有一种符号的引用包括三种类型:类和接口的全限定名。字段的名称和描述符。方法的名称和描述符。常量池中的每一个常量都是一个表。共有11种数据结构,这11中表有一个共同特点就是表开始的第一位是一个ul类型的标志位,代表当前这个常量属于哪种类型。。07 代表着这是个constatnt_class_info。他的数据结构如下Tag为标志位,name_index为指向当前常量池中的一个类型的偏移地址。02代表第二个常量为当前类名 01位constant_utf8_info的类型。0x0039代表字符长度ask码翻译过来为com/landray/kmss/fs/apply/actions/BaseHistoryRecordAction可以通过javap -verbose BaseHistoryRecordAction命令查看所有的变量。常量池后面的类型access_flags代表着访问标志(2个字节)包括定义这个class是类还是接口,是Public private等如果是多个类型应该采取|来进行操作后面的this_class 和super_class分表代表着类索引和父类索引,interfacer,由于一个类只能有一个父类多个接口,所以具有interfacer_account紧接着是(field_info)字段表,用来描述类或接口生命的变量。
您可能关注的文档
最近下载
- 药品管理法2019年版.ppt VIP
- 2025届高考语文复习:小说中人情美与人性美的体现+课件.pptx VIP
- 北京图书馆藏珍本年谱丛刊(全200册)目录.doc VIP
- 强度计算.结构分析:冲击分析:结构冲击分析的优化设计.pdf VIP
- [人教版]初中生物会考模拟考试题(答案)知识分享.pdf
- 七年级下册劳动技术四单元1课《塑料》教案(人民出版社).docx
- 中考语文二轮专题复习:散文阅读——情感主旨(共30张精品课件).pptx VIP
- 2025年一级建造师-备考思维导图-法规.pdf VIP
- 13.10意志力是成功的先导.pptx
- 初中科学课程标准(2011版,纯word文档).docx
文档评论(0)