一、字符串常量池在堆中还是方法区在JDK1.6及之前,常量池在方法区,当时的方法区也被称为永久代;
在JDK1.7中,方法区被合并到堆内存中,方法区被合并到堆内存中。此时的常量池也可以说是在堆内存中;
JDK1.8以后,方法区与堆内存分离,但方法实现与之前的永久代方法不同。此时的区域称为元空间,常量池就存放在元空间中。
二、String类隐式创建的对象存在栈还是堆内存中。对于这个问题,首先需要了解String类隐式创建的对象是什么。String类创建的对象分为显式创建的对象和隐式创建的对象,很容易理解。堆。隐式创建对象是指直接对String类的对象进行赋值并放入栈中。