在常量池结束之后,紧接着的两个字节代表访问标志(access_flag),这个标志用于识别一些类或者接口层次的访问信息,包括:这个Class是类还是接口;是否定义为public类型;是否定义为abstract类型;如果是类的话,是否被声明为final等。具体的标志位以及标志的含义如下表所示:

笔记-Java基础Class文件之访问标志

access_flag中一共有有16个标志位可以使用,当前之定义了8个,没有使用到的标志位要求一律为0。

TestClass是一个普通Java类,不是接口,枚举或者注解,被public关键字修饰但没有被声明为final和abstract,并且它使用了jdk1.2之后的编译器进行编译,因此它的ACC_PUBLIC,ACC_SUPER标志应当为真,而ACC_FINAL,ACC_INTERFACE,ACC_ABSTRACT,ACC_SYNTHETIC,ACC_ANNOTATION,ACC_ENUM这6个标志应当为假,因此它的access_flags的值应当为:0x0001|0x0020 = 0x0021。笔记-Java基础Class文件之访问标志

相关文章:

  • 2021-12-09
  • 2021-10-07
  • 2022-01-18
  • 2022-01-23
  • 2021-11-15
  • 2021-05-13
  • 2021-11-29
  • 2021-08-19
猜你喜欢
  • 2021-12-23
  • 2021-07-01
  • 2022-02-09
  • 2021-10-05
  • 2021-04-29
  • 2021-09-23
  • 2021-12-06
相关资源
相似解决方案