黑马程序员技术交流社区
标题:
String
[打印本页]
作者:
hel
时间:
2013-11-9 22:09
标题:
String
String A,B,C;
A="a";
B="b";
A=A+B;
StringBuffer D=new StringBuffer("abc");
D=D.append("567");
谁能告诉我创建了几个对象啊?
作者:
FFF
时间:
2013-11-9 22:22
Streing A,B,C;这里一共声明了三个String类型的变量A,B,C;
下面的只是赋值的引用指向问题、就不用看了!
StringBuffer D new StringBuffer("abc");声明了一个D的变量。
D=D.append();也只是赋值与引用指向的声明。没有产生新的对象。
一共四个对象。A,B,C,D.
个人理解,我也不知道对错与否。如有错误,万望告之。
作者:
零下五度的水
时间:
2013-11-9 22:29
目测也是4个:"a","b","ab" & new StringBuffer()
作者:
中关村阿旺
时间:
2013-11-9 22:52
本帖最后由 中关村阿旺 于 2013-11-9 22:54 编辑
我感觉创建了3个对象。
String A,B,C;只是声明了3个变量,并没有任何指向,也就没有创建对象。
A="a";
在常量池中有了一个常量"a",创建了一个对象A,A指向常量"a"。
B="b";
在常量池中有了一个常量"b",创建了一个对象B,B指向常量"b"。
A=A+B;
A+B:在常量池中有了一个常量"ab"。没有创建对象,只不过A的指向变化了,指向常量"ab"。
StringBuffer D=new StringBuffer("abc");
D=D.append("567");
创建了一个对象D。
根据毕老师经典的“面盆理论”,还是同一个面盆,还是同一个对象D。
作者:
月生春
时间:
2013-11-10 16:39
创建了四个对象:“a”,"b",new Stringbuffer("abc"),"abc"这四个对象
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2