深入理解java虚拟机(一):java内存区域(内存结构划分)

时间:2025-03-23 22:38:08
5、方法区

线程共享

用于存储已被虚拟机加载的类信息、常量、静态变量、即使编译后的代码等数据

别名永久代(Permanent Generation)

-XX:MaxPermSize设置上限

-XX:PermSize设置最小值 例:VM Args:-XX:PermSize=10M -XX:MaxPermSize=10M

运行时常量池(Runtime Constant Pool)是方法区的一部分

Class文件中除了有类的版本、字段、方法、接口等信息外,还有一项是常量池(Constant Pool Table),用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后进入方法区的运行时常量池中存放

运行时常量池相对于Class文件常量池的一个重要特征是具备动态性:即除了Class文件中常量池的内容能被放到运行时常量池外,运行期间也可能将新的常量放入池中,比如String类的intern()方法。