常量池是什么?

2023-09-05  本文已影响0人  鳌拜的弟弟熬夜

可以理解为class文件之中的资源仓库,它是class文件结构中与其他项目关联最多的数据类型,也是占用class文件空间最大的数据项目之一,同时它还是class文件中第一个出现表类型的数据项目。

由于常量池的数量是不固定的,所以在常量池入口需要放置一项u2(即2个字节)类型的数据,代表常量池容量计数值(constant-pool-count)(从1开始,将0表示不引用任何常量)。

常量池中主要存放两大类常量:

    ●    字面量(Literal):比较接近于Java语言层面的常量概念,如文本字符串,声明为final的常量值。

    ●    符号引用(Synbolic Reference):包括如下三类常量:

          ①    类和接口的全限定名(Fully Qualified Name)

          ②    字段的名称和描述符(Descriptor)

          ③    方法的名称和描述符

上一篇 下一篇

猜你喜欢

热点阅读