Re: [問題] 請問有多少個String物件被建立出來

看板java作者 (Alien)時間15年前 (2008/10/23 12:41), 編輯推噓5(501)
留言6則, 5人參與, 最新討論串2/3 (看更多)
※ 引述《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

10/23 14:24, , 1F
Line 3少一個"fall" 而最後一行的println不會產生
10/23 14:24, 1F

10/23 14:40, , 2F
對, 少了一個 fall. 但最後一句應該還會產生吧?!
10/23 14:40, 2F

10/23 15:59, , 3F
最後一行為什麼要產生?
10/23 15:59, 3F

10/23 16:05, , 4F
最後一行括號裡只是物件的代號 不是物件
10/23 16:05, 4F

10/23 16:16, , 5F
代號?" " 也有一個啊...
10/23 16:16, 5F

10/23 22:36, , 6F
原題目是「在println之前被建立出來」,所以不用算進去
10/23 22:36, 6F
文章代碼(AID): #19001Yqh (java)
討論串 (同標題文章)
文章代碼(AID): #19001Yqh (java)