1. 常量池
.java 文件编译成 .class 字节码文件后 ,对应的字节码文件中包含了常量池,常量池由字符串类型数据,基本类型数据 , final 修饰的变量组成 ,以及对应的变量 ,方法 ,类 , 包 等描述信息
2. 运行时常量池
.class 文件被加载器加载到内存中后 , 对应在内存中的 .class 文件对象 包含了运行时常量池(内存中的值对应class字节码文件中的常量池 , 且所有对象共享运行时常量池);
3. 字符串常量池
字符串常量池 由字符串组成 , 常量池中的字符串在类加载时 , 进入字符串常量池 , 且该内存区域属于堆内存(Since 1.8)