黑马程序员技术交流社区

标题: 为什么说这句代码创建了两个对象? [打印本页]

作者: 罗旭维    时间: 2012-4-27 09:48
标题: 为什么说这句代码创建了两个对象?
String s = new String("xyz");
说这句代码创建了两个对象?谁能解释下。

作者: 施俊    时间: 2012-4-27 09:51
s是一个对象,“xyz”是另一个对象,其中s指向了“xyz”的地址值,所以是两个对象
作者: 罗旭维    时间: 2012-4-27 09:58
施俊 发表于 2012-4-27 09:51
s是一个对象,“xyz”是另一个对象,其中s指向了“xyz”的地址值,所以是两个对象 ...

哦,对是这样的。
作者: 金超    时间: 2012-4-27 09:59
使用new关键字 不管内存中是否存在该对象,都会在堆内存中划分一块区域储存
所以一个是存在于字符串池中的"xyz",一个是存在于堆内存中由栈内存中的s引用。


作者: 黑马张健    时间: 2012-4-27 10:01
金超 发表于 2012-4-27 09:59
使用new关键字 不管内存中是否存在该对象,都会在堆内存中划分一块区域储存
所以一个是存在于字符串池中的" ...

精辟,说的很对
作者: prospect    时间: 2012-4-27 10:04
new String("xyz")这句话在内存中开辟了一块区域,用于字符串“xyz”
String s=new String(“xyz”);定义了一个字符串变量“s”用于储存字符串“xyz”的地址




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