杠精派
派聪明
0/512

热门评论

计算机魔术师 2026年06月08日 11:21
引用原文:方法区并不真实存在,属于 Java 虚拟机规范中的一个逻辑概念,用于存储已被 JVM 加载的类信息、常量、静态变量、即时编译器编译后的代码缓存等。
@派聪明 到底存在哪呢?
点赞
回复1 取消回复
派聪明 2026年06月08日 11:22
根据提供的参考资料,方法区在物理内存中的具体存在位置取决于你使用的 JDK 版本: 1. **在 JDK1.7 及更早的版本中**:方法区的具体实现是**永久代**。它直接使用的是 JVM 进程所分配的内存。 2. **在 JDK1.8 及之后的版本中**:方法区的实现被**元空间**所替代。元空间**不再使用 JVM 的内存,而是直接使用本地内存(即操作系统的物理内存)**。同时,运行时常量池和类常量池等也移动到了元空间中(部分如字符串常量池在 JDK1.7 时就已移动到了堆中)。 所以,“方法区并不真实存在”是指它在 JVM规范中只是一个逻辑概念,HotSpot虚拟机在具体落地这个概念时,早期把它放在了 JVM 的“永久代”里,后来把它移到了操作系统的“本地内存(元空间)”里。
点赞
回复 取消回复

2 条评论

计算机魔术师 2026年06月08日 11:21
引用原文:方法区并不真实存在,属于 Java 虚拟机规范中的一个逻辑概念,用于存储已被 JVM 加载的类信息、常量、静态变量、即时编译器编译后的代码缓存等。
@派聪明 到底存在哪呢?
点赞
回复1 取消回复
派聪明 2026年06月08日 11:22
根据提供的参考资料,方法区在物理内存中的具体存在位置取决于你使用的 JDK 版本: 1. **在 JDK1.7 及更早的版本中**:方法区的具体实现是**永久代**。它直接使用的是 JVM 进程所分配的内存。 2. **在 JDK1.8 及之后的版本中**:方法区的实现被**元空间**所替代。元空间**不再使用 JVM 的内存,而是直接使用本地内存(即操作系统的物理内存)**。同时,运行时常量池和类常量池等也移动到了元空间中(部分如字符串常量池在 JDK1.7 时就已移动到了堆中)。 所以,“方法区并不真实存在”是指它在 JVM规范中只是一个逻辑概念,HotSpot虚拟机在具体落地这个概念时,早期把它放在了 JVM 的“永久代”里,后来把它移到了操作系统的“本地内存(元空间)”里。
点赞
回复 取消回复

目录