8.1.3常量池解析

8.1.3常量池解析

本节描述解析每一种常量池入口类型的细节,包括可能在解析过程中抛出的错误。如果在 解析过程中抛出了错误,错误被看成是由指向执行解析的常量池入口的引用者抛出的。除了这里描述的错误,触发常量池入口解析的不同的指令,可能导致抛出其他的错误。比如,getstatic 导致CONSTANT_Fieldref_info入口被解析。如果这个入口被成功解析,虚拟机执行一个附加的 检査:确认字段是否的确是静态的(即,是类变量而非实例变最)。如果字段不是静态的,虚拟 机抛出一个错误。本节所描述的抛出错误,以及其他可能在解析过程中抛出的错误,都可以在 附录A中按照每个指令找到。

在以下的部分,术语“当前类装载器”指的是一个定义类装载器,不管它是一个用户自定 义的类装载器,还是一个启动类装载器,它的常量池包含正被解析的符号引用。术语“当前命 名空间”表示当前类装载器的命名空间,是由所有认为当前类转装载器是自己的初始类装载器 的类型名字组成的。(自我注解:是由所有类型认为当前类装载器是自己的初始类装载器的类型的名字组成的。如果这里假设,A表示类型,B表示当前类装载器,则该句又可以写为:是由所有A认为B是自己的初始类装载器的A的名字组成的)

 

posted @ 2019-12-03 21:27  mongotea  阅读(130)  评论(0编辑  收藏  举报