转载

【深入浅出-JVM】(73):InnerClasses 属性

InnerClasses_attribute {
    u2 attribute_name_index; //名称,恒为 InnerClasses
    u4 attribute_length;
    u2 number_of_classes;  //内部类的个数
    {
        u2 inner_class_info_index; // 内部类的类型
        u2 out_class_info_index; //外部类的类型
        u2 inner_name_index; //内部类的名称
        u2 inner_class_access_flags; //内部类的访问标识符
    }    classes[number_of_classes];
}

内部类访问标识符

|访问标识|值|含义|

|–|–|–|

|ACC_PUBLIC|0x0001|public公告类|

|ACC_PRIVATE|0x0002|私有类|

|ACC_PROTECTED|0x0004|受保护的类|

|ACC_FINAL|0x0010|final类|

|ACC_INTERFACE|0x0200|接口|

|ACC_ABSTRACT|0x0400|抽象类|

|ACC_SYNTHETIC|0x1000|编译器产生的,非代码产生的类|

|ACC_ANNOTATION|0x2000|注释|

|ACC_ENUM|0x4000|枚举|

例子

内部类

package com.mousycoder.mycode.thinking_in_jvm;

/**
 * @version 1.0
 * @author: mousycoder
 * @date: 2019-09-02 14:48
 */
public class SimpleInnerClass {
    public static class In{
        
    }
}

【深入浅出-JVM】(73):InnerClasses 属性

原文  http://mousycoder.com/thinking-in-jvm/73/
正文到此结束
Loading...