JVM 方法区

  方法区与Java堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。

  即方法区里存放着类的版本、字段、方法、接口和常量池(存储字面量和符号引用)。

  符号引用包括:1、类的权限定名;2、字段名和属性;3、方法名和属性。

  1、类型信息:

    类的完整名称

    类的直接父类的完整名称

    类的直接实现接口的有序列表

    类型标志(类类型还是接口类型)

    类的修饰符(public private defautl abstract final static)

  2、类型的常量池

    存放该类型所用到的常量的有序集合,包括直接常量(字符串、整数、浮点数)和对其他类型、字段、方法的符号引用。

  3、字段信息(该类声明的所有字段)

    字段修饰符(public、peotect、private、default)

    字段的类型

    字段名称

  4、方法信息

    方法信息中包含类的所有方法。

    方法修饰符

    方法返回类型

    方法名

    方法参数个数、类型、顺序等

    方法字节码

    操作数栈和该方法在栈帧中的局部变量区大小

    异常表

  5、类变量(静态变量)

  6、指向类加载器的引用

  7、指向Class实例的引用

  8、方法表

  9、运行时常量池(Runtime Constant Pool)

  

猜你喜欢

转载自www.cnblogs.com/natian-ws/p/10731270.html
今日推荐