String str=new String ("xyz");
我在某处读到JVM在池中创建了2个对象,在堆中创建了第2个对象。
这是真的吗?如果为真,那么为什么JVM创建2个对象时,有人可以解释?
答案 0 :(得分:1)
是的,你是对的。它创建了两个对象。一个在String Constant Pool中,另一个在Heap中指向String池。
如需进一步参考,请查看以下讨论: String s = new String("xyz"). How many objects has been made after this line of code execute?
答案 1 :(得分:0)
" XYZ"一旦加载了类,它就处于常量池中 当该行实际运行时,str被放在堆上
见 Where does Java's String constant pool live, the heap or the stack?