public class NewClass {
public String makinStrings() {
String s = "Fred";
s = s + "47";
s = s.substring(2, 5);
s = s.toUpperCase();
return s.toString();
}
}
上述程序中创建了多少个对象?转换为大写字符串后,我看到4个对象,但根据scjp书,答案是3。我不明白怎么只有3个物体
答案 0 :(得分:0)
s = "Fred"
s = s+47;
=> s = Fred47
s = s.substring(2,5);
=> s = ed4
s = s.toUpperCase();
=> s = ED4
答案 1 :(得分:-1)
是3个对象
String s = "Fred"; // created in pool
s = s + "47"; // created in heap
s = s.substring(2, 5); // created in heap
s = s.toUpperCase(); // created in heap
如果您看到substring()
和toUpperCase()
的来源,则会返回一个新字符串s + "47";
,因为s
的值是在运行时确定的,因此它将创建新的字符串共有3个物体。