黑马程序员技术交流社区
标题:
关于此句话有几个对象的问题
[打印本页]
作者:
pzfpang449
时间:
2013-2-5 17:52
标题:
关于此句话有几个对象的问题
本帖最后由 张向辉 于 2013-2-6 15:32 编辑
下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d"
我觉得应该有 a abcd 2个,但是也有人说是四个,七个,还有一个五个的
大家来讨论讨论吧
作者:
刘明杰
时间:
2013-2-5 18:17
对象是什么:
对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。 万物皆对象
所以,你要研究那个,就可以把那个看成是一个对象。至于到底有多少个对象,这貌似很深奥的样子
作者:
郭冰川
时间:
2013-2-5 18:22
未命名.jpg
(49.42 KB, 下载次数: 17)
下载附件
2013-2-5 18:14 上传
String s1 = "a"+"b"+"c"+"d";和String s2 = "abcd";比较,结果为真,说明s1和s2指向同一个地址
String s2 = "abcd";和(String s3 = "a";String s4 = s3+"b"+"c"+"d";)比较,结果为假,
说明s1创建的过程中不存在先有个"a"对象然后再+其他对象的情况,
所以String s1 = "a"+"b"+"c"+"d";这个过程中只创建了一个对象.
作者:
黄玉昆
时间:
2013-2-5 19:54
你在String s="a"+"b"+"c"+"d"中定义的s仅仅是一个变量,是想一个变量能够指向几个内存地址呢?
我认为是一个,既然只有一个内存地址的话,那么不管你后面存在多少个字符串,都赋给了s,那么也就是说只有一个对象。
我的意思是,可以从s的角度看,变量s 最终只能指向一个对象,那么后面的"a"+"b"+"c"+"d"就是一个对象。
作者:
dzr19850306
时间:
2013-2-5 20:33
LZ的意思是 “a” “b”分别生成了一个对象。
而“a”+“b”又生成了例外一个新的对象。
对于编译器我不大理解,但如果这样创建这么多对象,是否很浪费空间。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2