→ BlacksPig: 物件比對用雙等號,值的比對用equal,不知道java物件可 10/04 23:47
→ BlacksPig: 以試著印出hashcode來了解比對的物件儲存的是否同一個 10/04 23:47
→ BlacksPig: 記憶體位置 10/04 23:47
→ tbpfs: 要override hashCode() 10/05 00:04
推 kurtsgm: string compare這種東西其實就是看語言 有些可 有些不行 10/05 01:27
推 MyNion: C#若我記得沒錯,是不給控制參考型別的記憶體位置的 10/05 01:46
→ MyNion: 所以原PO中的==,在C#的字串是可以直接用的 10/05 01:47
→ MyNion: 有繼承IComparable並實作之的類別就可以用 10/05 01:48
推 freshlemon: 1.濃縮四年課程這件事情,其實專業一點的人都知道,大 10/05 02:25
→ freshlemon: 學還會上一些計算機概論、資料結構演算法等等課程,所 10/05 02:25
→ freshlemon: 以其實很多資策會的同學也知道情況,老師上課都有說明 10/05 02:25
→ freshlemon: 。 10/05 02:25
→ freshlemon: 2.Java有字串池機制,用String=雙引號這種方法,程式 10/05 02:25
→ freshlemon: 會在字串池中尋找有沒有相同的字串,如果沒有會新增一 10/05 02:25
→ freshlemon: 個新的字串在字串池中,如果有兩者的物件參考變數會是 10/05 02:25
→ freshlemon: 一樣的,因此使用雙引號寫法下==是行得通的,但是如果 10/05 02:25
→ freshlemon: 今天使用new方法則字串會存在Heap,物件參考變數是不 10/05 02:25
→ freshlemon: 同的,要使用equals,因為String的equals被Override了 10/05 02:25
→ freshlemon: ,因此用equals 就是在比對字串的內容。原文他想表示 10/05 02:25
→ freshlemon: 應該是自己很緊張,所以這麼簡單的題目都答錯,不過感 10/05 02:25
→ freshlemon: 覺他後來有補充,所以錄取這樣吧~ 10/05 02:25
推 qrtt1: 追求正確又完整的話,要答完整個 equality 的機制 10/05 08:10
推 nimaderto: 小弟記得 c++ 在 include string 時可以 沒有的時候不 10/05 09:39
→ nimaderto: 行 10/05 09:39
推 plsmaop: C++ 要分 c++ std string 還是 c string 10/05 09:43
推 sasaki5221: std string可以直接比,cstring要用strcmp ...吧 10/05 10:43
→ elements: 跟物件也沒有關係。是 == operator的運作觀念。 10/05 12:29
→ dreamnook: 同樓上 10/05 17:05
→ ssccg: C#是因為有operator override,其他跟java是一樣的 10/06 04:48
→ ssccg: overload 10/06 04:49
→ ssccg: 然後不要隨便用「實作中」怎樣來寫程式,除非你現在是需要 10/06 04:51
→ ssccg: micro-optimization,不然照著規格而不是實作寫才不會埋雷 10/06 04:51
→ ssccg: 字串池只限literal,但如果能這麼確定變數來源是literal那 10/06 04:54
→ ssccg: 也許根本該用enum,否則字串來源這麼多,StringBuilder、 10/06 04:56
→ ssccg: 各種編解碼,不是只有看到new才有new 10/06 04:57
推 xrururururu: 推 10/06 23:34
→ ChungLi5566: Bad practice的問題 沒有對錯 只有好跟不好 10/07 15:22