黑马程序员技术交流社区

标题: String 类创建对象的问题? [打印本页]

作者: 李红飞    时间: 2012-5-25 07:47
标题: String 类创建对象的问题?
String s1 ="aaab";    这里我知道是创建了一个对象。
但是:
String s = new String("xyz");创建了几个对象?
创建了一个对象,还是创建两几个对象??
作者: 贾旭    时间: 2012-5-25 08:26

String s1 ="aaab"是在常量池中创建了一个”aaab",然后s1进栈,引用型变量s1指向“aaab"
String s  =new String("xyz"):是在堆内存中new一个对象实体,它在构造的时候接收了一个字符串”xyz“对象,然后引用型变量s指向new的对象实体。
所以。第一个是一个对象。第二句在内存中产生两个对象。
这是老毕讲的一个经典问题。在Day13——01里有讲
作者: 田林    时间: 2012-5-25 08:32
String s=new String("xyz")会首先在堆中创建一个String类的对象,然后检查常量池中有没有"xyz",若没有创建一个;若有,则不再创建。
作者: niceBoy    时间: 2012-5-25 11:50
String s = new String("xyz");创建了几个对象?
创建了一个对象,还是创建两个对象??
首先在堆中创建一个String类的对象,然后检查常量池中有没有"xyz",若没有创建一个;若有,则不再创建

String s = new String("xyz");
String s = new String("xyz");
这个创建了三个对象




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2