黑马程序员技术交流社区

标题: 请教一下这个怎么理解 [打印本页]

作者: 王毅    时间: 2013-3-14 17:16
标题: 请教一下这个怎么理解
本帖最后由 王毅 于 2013-3-14 22:04 编辑

string s=new string (''xyz'');  创建了几个string Object 对象?
答案是两个  一个是“xyz“  一个是指向”xyz“的引用对象。
不理解 上面的意思  为什么是两个?
作者: 李贤贤    时间: 2013-3-14 17:20
2个对象;第一个,凡事用new的都是在创建对象;还有一个就是s,string类型的变量存储xyz!所以是2个对象
作者: 石国庆    时间: 2013-3-14 17:29
1楼是正解
作者: 岳珅    时间: 2013-3-14 17:31
感谢一楼,学习了!
作者: 马甲大王    时间: 2013-3-14 17:31
总共两个对象
1个是new出来的 s 指向"abc"的引用,在栈内存,
2对内存本来就有一个"abc"对象的。

知识点:String类的构造如String s = "abc";
和其他基本类型 如int  i = 5;
一样都是引用直接指向堆内存的值;
作者: 郑志强    时间: 2013-3-14 18:03
创建了一个String 类型的对象S 并且指向堆里存放的xyz数据
s存储的是一个指向xyz数据的地址。
作者: .netNo1    时间: 2013-6-19 17:02
两个。因为String是final类型的,当你写下String s的时候,再内存里已经有一个String对象S了。new String("xyz");这句在内存里创建了一个String“xyz”




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