在谈 JVM 内存区域划分之前,我们先来看一下 Java 程序的具体执行过程,我画了一幅图。Java 源代码文件经过编译器编译后生成字节码文件,然后交给 JVM 的类加载器,加载完毕后,交给执行引擎执行。在整个执行的过程中,JVM 会用一块空间来存储程序执行期间需要用到的数据,这块空间一般被称为运行时数据区,也就是常说的 JVM 内存。大家应该对官方出品的《Java 虚拟机规范》有所了解吧?该规范主要包含 6 个部分,分别是:。也就是说,我们要求程序计数器是线程私有的。当方法执行完毕后,将栈帧从栈中移除。换句话说,方法区和永久代的关系就像是 Java 中接口和类的关系,类实现了接口。运行时常量池和 class 文件的常量池
暂无评论