方法区:和java堆相同, 线程共享区域, 用来存储已被虚拟机加载的类信息, 常量、静态变量、即时编译器编译后的代码等数据。有人称作此方法区为“永久带”, 本质上不等价,只是HotSpot VM将GC分代收集扩展到了方法区,这样HotSpot的垃圾收集器管理方法区和管理java堆一样(优点:不用专门为方法区写一套垃圾收集器, 缺点:容易导致内存溢出)。官方现在拥也有放弃永久带并改为采用Native Memory来实现方法区的计划,目前已经发布的JDK7中的HotSpot中, 已经将原本放在方法区中的字符串常量池移出了。
来源: http://www.bubuko.com/infodetail-1969337.html