常量池
指的是在编译期被确定
并被保存在已编译的class文件中的一些数据。
存放内容
基本类型
对象型
符号引用
除了包含代码中所定义的各种基本类型
比如,int、long等,和对象型,比如,String及数组,的常量值,比如final修饰外
还包含一些以文本形式出现的符号引用,
1、类和接口的全限定名
2、字段的名称和描述符
3、方法的名称和描述符
虚拟机必须为每个被装载的类型维护一个常量池
常量池就是该类型所用到常量的一个有序集合
包括直接常量比如,string,integer等,和其他类型,字段和方法的符号引用
对于String常量,它的值是在常量池中的。
而JVM中的常量池在内存当中,是以表的形式存在的
对于String类型,有一张固定长度的CONSTANT_String_info表
用来存储文字字符串值
注意
该表只存储文字字符串值,不存储符号引用。
在程序执行的时候,常量池会储存在MethodArea,而不是堆中