String s = new String(“xyz”);产生几个对象? --2个
如果常量池中原来没有”xyz”,就是一个堆中对象(运行时放在堆里面)外加一个s的栈中引用,
还有一个在常量池(编译时决定的,最后放在常量池中)
如果常量池中原来有”xyz”,就是一个堆中对象外加一个s的栈中引用,在堆中。
如果是String s= "xyz"这样的,s这个引用就会直接指向常量池的"xyz",而不会是指向你在堆中创建的“xyz”。--1个
String s = new String(“xyz”);产生几个对象? --2个