疯狂

STANDING ON THE SHOULDERS OF GIANTS
posts - 481, comments - 486, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Java虚拟机 方法区

Posted on 2009-11-02 14:31 疯狂 阅读(764) 评论(0)  编辑  收藏 所属分类: java

对于被装载的每个类,虚拟机都会把这个类的类型信息存储在方法区,方法区中存储一下信息:eg: public class Test extends superclass implements interface1, interface2

1,  类的全限定名

2,  类的超类的全限定名

3,  这个类是类型还是接口

4,  类的访问修饰符

5,  超接口的权限定名的有序类表

6,  该类的常量池,

     该类型所使用常量的一个有序集合,包括直接类型和对其他类的,字段和方法的符号引用。

7,  字段信息

字段名,字段类型,字段的修饰符(eg:private String field)

8,  方法信息

方法名,方法的返回信息,方法的修饰符(eg:public  void method,如果一个方法不是抽象的和本地的还将保存一下信息:方法的字节码,操作数栈和方法的栈帧中的局部变量的大小,异常表

9,  除了常量以外的所有类变量

类变量是多有类实例共享的,但是没有类实例也可以访问,只与类有关,编译时常量

10,             一个到classLoader的应用

11,             一个到class类的引用

12,             方法表(为了尽可能的提高访问效率,大部分虚拟机对每个装载的费抽象类,都生成一个方法表,把他们当做类型信息放在方法去类。)

 方法区同样可以被垃圾回收。




只有注册用户登录后才能发表评论。


网站导航: