栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java class文件结构

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java class文件结构

如图所示,class文件其实就是一些二进制,注意是以16进制保存

前4字节代表的是魔数,就是cafebabe,后面两个字节代表次版本,再两个字节代表版本号,再后面就是很重要的内容!分别进行阐述

  1. 常量池:2个字节的计数器  再加上 一个复合表结构
  2. 访问标志 一般是以ACC开头

例如:ACC_PUBLIC等 如果public+final 那么就要将对应的两个值进行或运算

3.类索引、父类索引、接口索引

类索引和父类索引都是一个u2类型的数据,因为可以对多个接口进行实现,所以接口索引集合是一组u2类型的数据的集合 ,注意前面也应该有计数器

4.字段表

主要是对类或接口中的变量进行描述(但是不包括局部变量)

访问标志就是类似于 public等,字段名就是字段的名字,也可以理解为变量名,描述符就是它的类型,例如J、I等

属性集合 记录了初始值(必须是常量final等)、注释信息

5.方法表

也是2字节的计数器加上方法表构成

属性表里面最常见的就是code属性,记录了该方法的全部操作指令

注意 code属性里面还有两个子属性:LineNumberTable,LocalVariableTable

LineNumberTable:记录了java源文件行号与字节码文件偏移量之间的对应关系

LocalVariableTable:记录了用来描述栈帧的局部变量表中变量与java源码中变量的对应关系,也就是记录了各变量的作用范围(以行数来体现)

6.属性表

记录了class文件对应的一些信息,例如源文件名称等等。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/943544.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号