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

看板java作者 (Alien)時間17年前 (2008/10/24 12:19), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《adrianshum (Alien)》之銘言: : ※ 引述《misifit (傳說中的一塊錢)》之銘言: : : Q1 : : String s1 = "spring"; : : String s2 = s1 + "summer"; : : s1.concat("fall"); : : s2.concat(s1); : : s1 += "winter"; : : System.out.println(s1 + " " + s2); : : 上面有幾個物件在println之前被建立出來 : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 202.155.236.82 : 推 yyc1217:Line 3少一個"fall" 而最後一行的println不會產生 10/23 14:24 : → adrianshum:對, 少了一個 fall. 但最後一句應該還會產生吧?! 10/23 14:40 : 推 yyc1217:最後一行為什麼要產生? 10/23 15:59 括號裡那堆東西, 到頭來會被 translate 為 new StringBuilder(s1).append(" ").append(s2).toString() 怎會不產生? : 推 misifit:最後一行括號裡只是物件的代號 不是物件 10/23 16:05 願聞其詳 何謂物件的代號? 括號裡那堆東西, 和上面做 s1 + "summer" 做的 是同類的東西, 有什麼分別? : 推 godfat:代號?" " 也有一個啊... 10/23 16:16 又看漏了 XDDD : 推 lth5:原題目是「在println之前被建立出來」,所以不用算進去 10/23 22:36 題目並不是 "在 println 的一行之前被建立" 而是 "在 println 之前被建立" s1 + " " + s2 的建立是在 println 被 invoke 之前 所以嚴格來說 這行會引發兩個 string obj 被產生 Alien -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.155.236.82

10/24 15:02, , 1F
看JAVA版長知識~
10/24 15:02, 1F
文章代碼(AID): #190KpN3r (java)
文章代碼(AID): #190KpN3r (java)