简单总结
看了很多文章,说了很多细节,但是没有说关系。
- class文件里面包含class常量池,其实就是一个记录所有字面量和符号引用的表。这里的常量池就是所谓的静态常量池
- 每次我们加载class文件的时候,都会把class文件的常量池表放到运行时常量池中。运行时常量池是动态的,class文件的常量池是静态的。
- 运行时常量池是字符串常量池、数字类型常量池等的一个统称。运行时常量池和方法区一样是一个规范,不通虚拟机对运行时常量池有不同的实现。
- 字符串常量池存在运行时常量池之中(Hotspot:在JDK7之前存在运行时常量池之中,在JDK7已经将其转移到堆中)。
可以看看下面这些文章:
https://blog.csdn.net/zm13007310400/article/details/77534349
https://www.javatt.com/p/47643