专栏名称: java一日一条
主要是讲解编程语言java,并且每天都推送一条关于java编程语言的信息
目录
相关文章推荐
Java编程精选  ·  字节员工自曝:在强调一遍OD ... ·  昨天  
Java编程精选  ·  雷军删文,热搜第一! ·  2 天前  
51好读  ›  专栏  ›  java一日一条

自己动手实现一个 Java Class 解析器

java一日一条  · 公众号  · Java  · 2017-11-14 08:13

正文

请到「今天看啥」查看全文


如何解析

组成 Class 文件的各个数据项中,例如魔数、 Class 文件的版本等数据项、访问标志、类索引、父类索引,它们在每个 Class 文件中都占用固定数量的字节,在解析时只需要读取相应数量的字节。除此之外,需要灵活处理的主要包括 4 部分:常量池、字段表集合、方法表集合和属性表集合。字段和方法都可以具备自己的属性, Class 本身也有相应的属性,因此,在解析字段表集合和方法表集合的同时也包含了属性表的解析。

常量池占据了 Class 文件很大一部分的数据,用于存储所有的常量信息,包括数字和字符串常量、类名、接口名、字段名和方法名等。 Java 虚拟机规范定义了多种常量类型,每一种常量类型都有自己的结构。常量池本身是一个表,在解析时有几点需要注意。







请到「今天看啥」查看全文