可以理解为class文件之中的资源仓库,它是class文件结构中与其他项目关联最多的数据类型,也是占用class文件空间最大的数据项目之一,同时它还是class文件中第一个出现表类型的数据项目。
由于常量池的数量是不固定的,所以在常量池入口需要放置一项u2(即2个字节)类型的数据,代表常量池容量计数值(constant-pool-count)(从1开始,将0表示不引用任何常量)。
常量池中主要存放两大类常量:
● 字面量(Literal):比较接近于Java语言层面的常量概念,如文本字符串,声明为final的常量值。
● 符号引用(Synbolic Reference):包括如下三类常量:
① 类和接口的全限定名(Fully Qualified Name)
② 字段的名称和描述符(Descriptor)
③ 方法的名称和描述符
网友评论