静态的成员函数和成员变量随着类的加载存在于方法区中,这是没有问题的,但是不代表方法区中只存在这些东西
jvm在运行时要大量使用存储在方法区中的类型信息。而且方法区是被所有线程共享的。
方法区的大小不必是固定的,jvm可以根据应用的需要动态调整。同样方法区也不必是连续的。方法区可以在堆中分配。
jvm可以允许用户和程序指定方法区的初始大小,最小和最大尺寸。
方法区同样存在垃圾收集,因为通过用户定义的类加载器可以动态扩展java程序,一些类也会成为垃圾。
我认为方法区是jvm运作的核心,所有的静态方法在加载类的时候已经加载好,而当你需要调用那个方法,或者对某个对象进行操作的时候,又会把方法加载到方法区进行调用
|