0
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 个对象

4

2 回答 2

0
  1. s = "Fred"
  2. s = s+47;=>s = Fred47
  3. s = s.substring(2,5);=>s = ed4
  4. s = s.toUpperCase();=>s = ED4
于 2015-05-18T13:20:27.670 回答
-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 个对象。

于 2015-05-16T07:03:17.393 回答