类常量池
诞生时间:编译时
所处区域:方法区(类常量池存在Class文件中,一个Class文件对应一个类常量池)
储存内容:符号引用和字面量。
字符串常量池
诞生时间:编译时
所处区域:堆
储存内容:堆内的字符串对象的引用和字符串常量。
运行时常量池
诞生时间:当类加载到内存中后
所处区域:本地内存(每个class都加载后常量池的数据被汇总到运行时常量池,运行时常量池存在元空间中)
储存内容:class文件元信息描述,编译后的代码数据,引用类型数据(类经过解析后会把符号引用替换为直接引用,解析的过程会去查询字符串常量池,以保证运行时常量池所引用的字符串与全局字符串池中所引用的是一致的)。