zoukankan      html  css  js  c++  java
  • (十四)访问标志 Access_flags

    一、概念  

    上一章节讲到了常量池,如下图,常量池之后便是访问标志acess_flags,占2个字节(u2)。

    二、例子

      编写一个接口。

    public interface Test{
        
        public final String userName="ADMIN";
    }

    编译之后,用javap命令行打开,可看到访问标志Access_flags。

    C:UsersAdministratorDesktop>javap -verbose Test.class
    Classfile /C:/Users/Administrator/Desktop/Test.class
      Last modified 2018-5-13; size 164 bytes
      MD5 checksum 0948ee61f2cbaaf5477f8c3bea7b62ce
      Compiled from "Test.java"
    public interface Test
      minor version: 0
      major version: 52
      flags: ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
    Constant pool:
       #1 = Class              #9             // Test
       #2 = Class              #10            // java/lang/Object
       #3 = Utf8               userName
       #4 = Utf8               Ljava/lang/String;
       #5 = Utf8               ConstantValue
       #6 = String             #11            // ADMIN
       #7 = Utf8               SourceFile
       #8 = Utf8               Test.java
       #9 = Utf8               Test
      #10 = Utf8               java/lang/Object
      #11 = Utf8               ADMIN
    {
      public static final java.lang.String userName;
        descriptor: Ljava/lang/String;
        flags: ACC_PUBLIC, ACC_STATIC, ACC_FINAL
        ConstantValue: String ADMIN
    
    }
    SourceFile: "Test.java"
    •  如上面橙色标记,可知访问标志值为:flags: ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT

    打开Test.class的字节文件,访问标志值紧跟在常量池之后的两个字节,

    •  如上图,访问标志值为:0x0601 ,上面已经得出flags: ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT ,参照下表可知,ACC_PUBLIC=0x0001
    • ,ACC_INTERFACE=0x0200,ACC_ABSTRACT =0x0400 ,   访问标志值0x0601  = 0x0001 or 0x0200 0x0400 

     

  • 相关阅读:
    Google 面试准备清单
    Two sorted array. Find kth smallest element, 要求O(logK)
    MVC(demo)
    UE4学习心得:Scene Component蓝图的一个简单应用
    UE4中如何使物体始终朝向摄像头?
    响应式Web设计
    Nodejs的express使用教程
    安装express遇到的问题
    致自己
    上传文件的方法
  • 原文地址:https://www.cnblogs.com/shyroke/p/9031951.html
Copyright © 2011-2022 走看看