什么是java中的运行时常量池和方法区域

Hel*_*rld 7 computer-science jvm

什么是java中的运行时常量池和方法区域.我读到JVM创建它们但是哪一个首先存在?它们包含什么?任何帮助将不胜感激.

RRM*_*RRM 10

根据http://www.artima.com/insidejvm/ed2/jvm2.html

方法区域

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

运行时常量池

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

  • 好的图片说明:http://blog.jamesdbloom.com/JVMInternals.html#constant_pool (3认同)
  • 你能解释一下什么是“符号引用”吗? (3认同)