String s = new String(“xyz”);产生几个对象?

来源:互联网 发布:地图软件电脑版 编辑:程序博客网 时间:2024/05/20 10:15

String s = new String(“xyz”);产生几个对象?


如果常量池中原来没有”xyz”,就是两个对象外加一个s的栈中引用,
一个在常量池(编译时决定的,最后放在常量池中)
一个在堆中(运行时放在堆里面)


如果常量池中原来有”xyz”,就是一个对象外加一个s的栈中引用,在堆中。


如果是String s= "xyz"这样的,s这个引用就会直接指向常量池的"xyz",而不会是指向你在堆中创建的“xyz”。



1 0