美文网首页
字段表数据的解读

字段表数据的解读

作者: Shaw_Young | 来源:发表于2021-08-10 16:48 被阅读0次

fields [](字段表)

  • fields表中的每个成员都必须是一个fields_info结构的数据项,用于表示当前接类或接口中某个字段的完整描述。
  • 一个字段的信息包括如下这些信息。这些信息中,各个修饰符都是布尔值,要么有,要么没有。
    • 作用域(public、private、protected修饰符)
    • 是实例变量还是类变量(static修饰符)
    • 可变性(final)
    • 并发可见性(volatile修饰符,是否强制从主内存读写)
    • 可否序列化(transient修饰符)
    • 字段数据类型(基本数据类型、对象、数组)
    • 字段名称
  • 字段表结构
    字段表作为一个表,同样有他自己的结构:
类型 名称 含义 数量
u2 access_flags 访问标志 1
u2 name_index 字段名索引 1
u2 descriptor_index 描述符索引 1
u2 attributes_count 属性计数器 1
attribute_info attributes 属性集合 attributes_count

字段表访问标识

我们知道,一个字段可以被各种关键字去修饰,比如:作用域修饰符(public、private、protected)、static修饰符、final修饰符、volatile修饰符等等。因此,其可像类的访问标志那样,使用一些标志来标记字段。字段的访问标志有如下这些:

标志名称 标志值 含义
ACC_PUBLIC 0x0001 字段是否为public
ACC_PRIVATE 0x0002 字段是否为private
ACC_PROTECTED 0x0004 字段是否为protected
ACC_STATIC 0x0008 字段是否为static
ACC_FINAL 0x00010 字段是否为final
ACC_VOLATILE 0x0040 字段是否为volatile
ACC_TRANSIENT 0x0080 字段是否为transient
ACC_SYNCHETIC 0x1000 字段是否为由编译器自动产生的
ACC_ENUM 0x4000 字段是否为enum

字段名索引

根据字段名索引的值,查询常量池中的指定索引即可。

描述符索引

描述符的作用是用来描述字段的数据类型、方法的参数列表(包括数量、类型以及顺序)和返回值。根据描述符规则,基本数据类型(byte,char,double,float,int,long,short,boolean)及代表无返回值的void类型都用一个大写字符来表示,而对象则用字符L加对象的全限定名来表示,如下所示:

字符 类型 含义
B byte 有符号字节型数
C char Unicode字符,UTF-16编码
D double 双精度浮点数
F float 单精度浮点数
I int 整型数
J long 长整型
S short 有符号短整数
Z boolean 布尔值true/false
L ClassName; reference 一个名为Classname的实例
[ reference 一个一维数组

属性表集合

一个字段还可能拥有一些属性,用于存储更多的额外信息。比如初始化值、一些注释信息等。属性个数存放在attribute_count,属性具体内容存放在attributes数组中。

梦想很模糊,去追,它会渐变清晰。青春励志,奋斗下去别放弃。

相关文章

  • 字段表数据的解读

    fields [](字段表) fields表中的每个成员都必须是一个fields_info结构的数据项,用于表示当...

  • SQL基础语句

    SQL 基本语句记录 新建表 删除表: 插入数据: 删除数据: 更新数据: 新增字段: 删除字段: 修改字段: 重...

  • SQLite中常用的SQL语句

    创建表:creat table 表名 (字段名 字段数据类型 是否为主键, 字段名 字段数据类型, 字段名 字段数...

  • 10《MySQL 教程》MySQL 设计数据表

    一个数据表主要包含信息有 : 表名、主键、字段、数据类型、索引,本节主要介绍表的命名规范、字段命名、字段的数据类型...

  • mysql 常用语句

    查询数据库下所有表名、表注释 查询数据库下字典表下所有字段名、数据类型、字段注释 查询数据库下所有表下所有字段名、...

  • 二、SQL—数据的增删改

    首先创建数据表: 插入数据: insert into 表名(字段名)values(字段值)如: 注意:字段和值要一...

  • 数据表操作

    创建数据表 普通创建表基本语法:create table 表名(字段名 字段类型 [字段属性],...,字段名 字...

  • MySql查询-基础查询

    创建数据库、数据表 准备数据 查询所有字段 查询指定字段 使用 as 给字段起别名 可以通过 as 给表起别名 消...

  • DDL 操作数据表

    一个数据库中可以有n个表,表中又有字段(列),在建表的时候就需要定义好字段并指定字段的属性:字段数据类型以及字段长...

  • Sqlserver查看数据库中所有表名以及表里所有字段名

    数据库中名字 表中字段 更改字段名 生成该数据库所有表所有字段空值检查脚本 逻辑:1.获取该数据所有表对应的所有字...

网友评论

      本文标题:字段表数据的解读

      本文链接:https://www.haomeiwen.com/subject/dtyxbltx.html