什么是Java中的运行时常量池和方法区域。我读到JVM会创建它们和两者,但哪个先存在呢?它们还包含什么?任何帮助将不胜感激。

最佳答案

按照http://www.artima.com/insidejvm/ed2/jvm2.html

方法区域

一些运行时数据区域在应用程序的所有线程之间共享,而其他数据块则是各个线程所独有的。 JVM的每个实例都有一个方法区域和一个堆。这些区域由VM内部运行的所有线程共享。 VM加载类文件时,会从类文件中包含的二进制数据中解析有关类型的信息。它将此类型信息放入方法区域。

运行时常量池

一个类文件将其所有符号引用都保留在一个位置,即常量池中。每个类文件都有一个常量池,Java虚拟机加载的每个类或接口(interface)都有其常量池的内部版本,称为运行时常量池。运行时常量池是特定于实现的数据结构,它映射到类文件中的常量池。因此,在最初加载类型之后,该类型的所有符号引用都驻留在该类型的运行时常量池中。

关于jvm - 什么是Java中的运行时常量池和方法区,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22921010/

10-12 15:55