作者adrianshum (Alien)
看板java
标题Re: [问题] 请问有多少个String物件被建立出来
时间Thu Oct 23 12:41:05 2008
※ 引述《misifit (传说中的一块钱)》之铭言:
: Q1
: String s1 = "spring";
: String s2 = s1 + "summer";
: s1.concat("fall");
: s2.concat(s1);
: s1 += "winter";
: System.out.println(s1 + " " + s2);
: 上面有几个物件在println之前被建立出来
string literal 算不算是 "建立" ?
算的话...
line 1: "spring"
line 2: "summer", "springsummer"
line 3: "springfall"
line 4: "springsummerspring"
line 5: "winter", "springwinter"
line 6: println 里那条长东西
的确是 8 个
: Q2
: public String makinStrings() {
: String s = “Fred”;
: s = s + “47”;
: s = s.substring(2, 5);
: s = s.toUpperCase();
: return s.toString();
: }
: How many String objects will be created when this method is invoked?
: Q1 我算很久算出来是8个String 物件被建立出来
: Q2 的话我觉得是五个 可是答案是3个(不确定答案是不是一定正确)
: 麻烦大家帮我算一下可以吗 感激
Q2 当是 5 个的话, 就是包含 literal
3 个就是不包 literal
如果问题是问在 makinStrings() 里面建立的话,
那的确是 3 个, 因为 literals 是在 makinStrings 以
外就已经早被建立出来了
Alien
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 202.155.236.82
1F:推 yyc1217:Line 3少一个"fall" 而最後一行的println不会产生 10/23 14:24
2F:→ adrianshum:对, 少了一个 fall. 但最後一句应该还会产生吧?! 10/23 14:40
3F:推 yyc1217:最後一行为什麽要产生? 10/23 15:59
4F:推 misifit:最後一行括号里只是物件的代号 不是物件 10/23 16:05
5F:推 godfat:代号?" " 也有一个啊... 10/23 16:16
6F:推 lth5:原题目是「在println之前被建立出来」,所以不用算进去 10/23 22:36