Re: [心得] 28歲國中畢業資策會結訓

作者: tbpfs (http://0rz.tw/Uk989)   2020-10-04 23:04:45
: 課程非常非常的趕(聽說是4年大學程式課縮在5個月裡面)
不是這樣的
是不一樣的東西
http://l.ovoy.click/w99bx
: 技術主管問我String能寫==嗎
: 我那時候緊張到不行 就先回答主管不能 因為這樣很雷
: 技術主管眼睛就瞇起來然後"...恩?"的表情看我
: 當下已經做好被趕出去的心理準備了XD
: 又接著繼續問我MVC,我回答完後就接著講String的那部分
: 接著聊天2小時,最後有拿到offer
關於這一題,我先assume題目是java因為後面提到是物件導向
這題有分兩個層次
一般而言,物件的比對會用equals
Java教科書也會教說不能用==
但,我怎麼有印象,Java實作中,為了節省記憶體
所以其實只要是定義好的字串,他會是指到同一個位置的
既然是同一塊位置,那==應該是可以正確的回答
所以其實這一題真正的答案是:
你不要去new他,結果會是對的
細節有點複雜Ho 我直接貼我google到的結果
http://l.ovoy.click/v6fc8
作者: BlacksPig (Black Handsome s Pig)   2020-10-04 23:47:00
物件比對用雙等號,值的比對用equal,不知道java物件可以試著印出hashcode來了解比對的物件儲存的是否同一個記憶體位置
作者: tbpfs (http://0rz.tw/Uk989)   2020-10-05 00:04:00
要override hashCode()
作者: kurtsgm   2020-10-05 01:27:00
string compare這種東西其實就是看語言 有些可 有些不行
作者: MyNion (Nion Lee)   2020-10-05 01:46:00
C#若我記得沒錯,是不給控制參考型別的記憶體位置的所以原PO中的==,在C#的字串是可以直接用的有繼承IComparable並實作之的類別就可以用
作者: freshlemon (清新檸檬水)   2020-10-05 02:25:00
1.濃縮四年課程這件事情,其實專業一點的人都知道,大學還會上一些計算機概論、資料結構演算法等等課程,所以其實很多資策會的同學也知道情況,老師上課都有說明。2.Java有字串池機制,用String=雙引號這種方法,程式會在字串池中尋找有沒有相同的字串,如果沒有會新增一個新的字串在字串池中,如果有兩者的物件參考變數會是一樣的,因此使用雙引號寫法下==是行得通的,但是如果今天使用new方法則字串會存在Heap,物件參考變數是不同的,要使用equals,因為String的equals被Override了,因此用equals 就是在比對字串的內容。原文他想表示應該是自己很緊張,所以這麼簡單的題目都答錯,不過感覺他後來有補充,所以錄取這樣吧~
作者: qrtt1 (有些事,有時候。。。)   2020-10-05 08:10:00
追求正確又完整的話,要答完整個 equality 的機制
作者: nimaderto (沒朋友)   2020-10-05 09:39:00
小弟記得 c++ 在 include string 時可以 沒有的時候不行
作者: plsmaop (plsmaop)   2020-10-05 09:43:00
C++ 要分 c++ std string 還是 c string
作者: sasaki5221 (曜多☆山田一生推)   2020-10-05 10:43:00
std string可以直接比,cstring要用strcmp ...吧
作者: wildli0422 (wild)   2020-10-05 11:40:00
作者: elements (Helianthus annuns)   2020-10-05 12:29:00
跟物件也沒有關係。是 == operator的運作觀念。
作者: dreamnook (亞龍)   2020-10-05 17:05:00
同樓上
作者: ssccg (23)   2020-10-06 04:48:00
C#是因為有operator override,其他跟java是一樣的overload然後不要隨便用「實作中」怎樣來寫程式,除非你現在是需要micro-optimization,不然照著規格而不是實作寫才不會埋雷字串池只限literal,但如果能這麼確定變數來源是literal那也許根本該用enum,否則字串來源這麼多,StringBuilder、各種編解碼,不是只有看到new才有new
作者: xrururururu (胖達)   2020-10-06 23:34:00
作者: ChungLi5566 (中壢56哥)   2020-10-07 15:22:00
Bad practice的問題 沒有對錯 只有好跟不好

Links booklink

Contact Us: admin [ a t ] ucptt.com