JVM常量池分析

Class文件常量池

Clas文件中除了有类的版本、字段等描述信息外,还有常量池表(Constant Pool Table),用于存放编译期生成的各种字面量和符号引用,这部分内容在类加载后会存放在方法区中的运行时常量池

符号引用

  • 类和接口的全限定名
  • 字段的名称和描述符
  • 方法的名称和描述符

运行时常量池

运行时常量池是在方法区中,即JDK1.8中的元空间。JVM将类加载到内存中后,会将Class常量池中的内容存放到运行时常量池中。

字符串常量池

为了减少字符串对象的重复创建,复用字符串对象,在堆中开辟了一段内存用于存放字符串常量

参考

深入理解JVM-Class常量池
oracle官方文档

posted @ 2020-08-20 14:32  喻家山下小菜鸟  阅读(120)  评论(0编辑  收藏  举报