public class TestA {
static String nameA="agan";
static final String nameB = "agan";
String nameC="agan";
public void test(){
String b="agan";
}
}
类型信息
对每个加载的类型(类class、接口interface、枚举enum、注解annotation),JVM必须在方法区中存储以下类型信息:
这个类型的完整有效名称(全名=包名.类名)
这个类型直接父类的完整有效名(对于interface或是java.lang.Object都没有父类)
这个类的修饰符(public,abstract,final的某个子集)
这个类型直接接口的一个有序列表
域信息(成员变量)
JVM必须在方法区中保存类型的所有域的相关信息以及域的声明顺序。
域的相关信息包括:域名城、域类型、域修饰符(public,private,protected,static,final,volatile,transient的某个子集)
方法信息
方法名称
方法的返回类型(或void)
方法参数的数量和类型(按顺序)
方法的修饰符(public,private,protected,static,final,synchronized,native,abstract的一个子集)
方法的字节码(bytecodes)、操作数栈、局部变量表及大小(abstract和native方法除外)
异常表(abstract和native方法除外)