本帖最后由 刘伯阳 于 2012-6-1 20:04 编辑
方法区肯定也是要占用内存的啊。只不过是一块特殊的区域。虚拟机可以根据应用动态调整它的大小,方法区也不必是连续的。
当JVM装载一个class文件时,它会从这个class文件所包含的二进制数据中解析出类型信息,然后把这些类型信息放到方法区(线程共享)。
对每个加载的类型,jvm必须在方法区中存储以下类型信息:
一 这个类型的完整有效名
二 这个类型直接父类的完整有效名(除非这个类型是interface或是java.lang.Object,两种情况下都没有父类)
三 这个类型的修饰符(public,abstract, final的某个子集)
四 这个类型直接接口的一个有序列表 |