Java内存模型中的常量池
Java内存模型中的运行时常量池位于方法区中,在类加载时继承于Class文件中的常量池表。一个类对应一个运行时常量池。
Class文件中的常量池表包含各种字面量及符号引用,包括:
- 包名
- 类和接口的全限定名
- 字段名和描述符
- 方法名和描述符
- 方法类型
- 动态调用点和动态常量
在类加载的解析过程中,JVM将Class文件中部分符号引用解析为直接引用,即将一些名称解析为直接指向目标的指针或句柄,与虚拟机内存实际布局有关,在调用该类的方法或字段时就可以通过指针找到其对应的位置,这个过程称为静态解析。而在运行过程中进行解析的过程成为动态解析。