[java虚拟机]--(2)字节码文件--(3)常量池

声明:

Author:赵志乾

Date:2018-6-18

Declaration:All Right Reserved!!!


背景知识:

    常量池这一概念在虚拟机内存章节中也提到过(《虚拟机内存》)。虚拟机内存中的常量池位于方法区内,其全称为运行时常量池。之所以成为运行时常量池,是因为其伴随虚拟机的运行而存在,具有动态行,即随时间的推移,会有新的内容加入,也有旧的内容被gc线程回收。而字节码文件中的常量池则是一个静态概念,其内容不会虽时间发生变动。


字节码文件中的常量池

1、静态常量池紧随文件版本号,是字节码文件中的第一个表类型数据。其作为文件中的资源仓库,为其他内容提供了各种索引信息。

    静态常量池的大小随文件而不同,故在其入口处放置一容量计数器,以表征当前文件中静态常量池的大小。而池内存放的内容大体上可分为两大类:字面常量和符号引用。

    静态常量池本身是一个表类型数据,并且其存放的每一个数据项也是一个表类型数据。最无语的是这些数据项共有14种类型,且结构各不相同。不过每一数据项的起始都会有一个标志位tag,来表征其属于哪一种常量类型。



邮箱:[email protected]

参考资料:《深入理解java虚拟机》--周志明


猜你喜欢

转载自blog.csdn.net/zhaoyaxuan001/article/details/80726159