黑马程序员技术交流社区

标题: 关于此句话有几个对象的问题 [打印本页]

作者: 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

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