Re: [J2SE] Java String觀念請教?

看板java作者時間17年前 (2008/05/01 23:50), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/6 (看更多)
※ 引述《AI3767 (AI3767)》之銘言: : ※ 引述《Harifucks (就是要戰腦殘保險業務)》之銘言: : : 我選D,但是答案是C,有人可以解釋嗎? : : 出處:Testkiller SCJP 5,第91題 : 我的想法是, Java 會有String spool, : 至少有 "Fred" 和 "47" 這兩個在裡面 : String s = "Fred"; : 實際上是將 s 變數bind到 "Fred" 物件上 : 而 "Fred" 並非是在這個method中才產生的, 所以不能算在題目要的1次 : s = s+"47"; : 則是runtime的事情, 會產生新的物件形成 "Fred47" : s = s.substring(2,5); : 特別去看了source code,確定是產生新的物件 : 因為源碼是使用建構式去產生 : s = s.toUpperCase(); : 因為java大小寫有差, 這裡還是得要產生都是大寫的物件 : s.toString(); : 既然是String了, toString()的用意就是要一個表示該物件的String, : String主要就是用來表示String的, 所以這個method就是回傳自己 : 所以我覺得應該是 3 個 : 這樣解釋不知道可不可以@@   我也是這麼覺得,   不過如果再詳細去看 toUpperCase() 的說明:   http://java.sun.com/javase/6/docs/api/java/lang/String.html#toUpperCase()   "... This method is equivalent to toUpperCase(Locale.getDefault())."   會發現有牽扯到 Locale.getDefault() 的實作,   如果再進一步去追一下它的 source code,   就會發現其實還有機會產生其他的 String objects. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.175.144.62
文章代碼(AID): #186URN71 (java)
討論串 (同標題文章)
文章代碼(AID): #186URN71 (java)