Given:
11. public String makinStrings() {
12. String s = "Fred";
13. s = s + "47";
14. s = s.substring(2, 5);
15. s = s.toUpperCase();
16. return s.toString();
17. }
How many String objects will be created when this method is invoked?
A. 1
B. 2
C. 3
D. 4
E. 5
F. 6
Answer: C

解决方案 »

  1.   

    12,13的时候会创建各创建引用,也就是全新的一个对象,然后把
    s指向新的对象,第三个我就不太清楚了,
    我猜是15行的时候又创建一个对象吧,,
    因为string 类型的对象被改变的时候是新建一个对象,不是改变当前对象..
    参考think in java吧..说的很清楚的
      

  2.   

    1.s = "Fred"; 
    2.s = s + "47"; 
    3.s = s.substring(2, 5)
    String是不可变长的字符对像,每改变一次长度,就会重新NEW一个String Object.
    注意其与 StringBuffer的区别!