【发布时间】:2014-11-05 15:39:08
【问题描述】:
以下代码创建了多少个对象?
String a, b, c;
a = "1234";
b = a;
c = a + b;
有人告诉我答案是2,因为只有 a 和 b 指向他们自己的数据。
c 只能使用a 和b 创建。然而,声明一个变量的行为难道不被认为是创建它吗?这个问题很模糊吗?我说3。
【问题讨论】:
-
如果我这样做
String a;,对象在哪里?如果我做String a = null;怎么办? -
2 个对象,a="1234" 和 a+B
-
“但是,声明一个变量的行为难道不考虑创建它吗?” 是的,您创建的是变量,而不是对象。
-
你可以告诉你的老师这个问题很模糊,因为 + 运算符可能会创建两个对象(1- StringBuilder,2- String)
-
另外,“1234”字符串可能会被保留,因此您甚至可以询问它是否符合“创建”对象的条件;)。