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