JVM虚拟机---(8)Class文件结构之访问标志

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq1021979964/article/details/97128696

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

access_flags中一共有16个标志位可以使用,当前只定义了8个,没有使用的标记一律为0.

案例

public class TestConstant {

    private final int a = 10;
    private final int b = 10;
    private int c = 11;
    private int d = 11;
    private long e = -11111110005514L;
    private long f = -11111110005514L;
    private double g = 10.4557848D;
    private double h = 10.4557848D;
    private String y = "JVM";
    private String j = "JVM";

}

编译成class文件,使用UltraEdit打开,可以得到Java编译后的字节码

 

Access_flags的值为00 21 = 由此推出,0x0001 + 0x0020 = 0x0021,

它的ACC_PUBLIC、ACC_SUPER标志应为真。其余为假。

验证正确。

猜你喜欢

转载自blog.csdn.net/qq1021979964/article/details/97128696
今日推荐