这道题考的不是难点和重点,考的是基本概念和知识。immutability,String 的 immutability,String 是怎么运作的,GC 的工作原理,等等,都是重要的基本概念和基本知识。对这些东西一无所知或者一知半解,很可能说明你做码工是出于被迫,而不是出于自愿,更谈不上对编程有热情。一叶而知秋,你不懂这些东西,说明还有其他很多重要的东西你不懂。
做合理的假设是做码工的一个重要品质。码工工作中会遇到成千上万的不确定情况,不能做合理的假设,事事都要刨根问底,你很可能会寸步难行,而且也无端地骚扰别人。这道题里,一个合理的假设就是这段代码运行后所以的东西都变成 out of scope。另一个合理的假设就是 arg 是无关项。
不钻牛角尖也是码工的一个重要品质。码工每时每刻都会面对大量的细节,好的码工知道什么有关,什么无关,能做到对无关项视而不见。不好的码工事无巨细,一视同仁。最坏的码工把眼睛盯在无关项上,既浪费自己和别人的时间,也把自己的脑子搞乱,结果往往是把程序做的莫名其妙的复杂。
为什么 arg 是无关项?请看看下面几种情况(假设楼主的考题是函数 f() 的 body):
f(“1”+1);
f(“abc”);
String joe = “1”+1; f(joe);
做合理的假设是做码工的一个重要品质。码工工作中会遇到成千上万的不确定情况,不能做合理的假设,事事都要刨根问底,你很可能会寸步难行,而且也无端地骚扰别人。这道题里,一个合理的假设就是这段代码运行后所以的东西都变成 out of scope。另一个合理的假设就是 arg 是无关项。
不钻牛角尖也是码工的一个重要品质。码工每时每刻都会面对大量的细节,好的码工知道什么有关,什么无关,能做到对无关项视而不见。不好的码工事无巨细,一视同仁。最坏的码工把眼睛盯在无关项上,既浪费自己和别人的时间,也把自己的脑子搞乱,结果往往是把程序做的莫名其妙的复杂。
为什么 arg 是无关项?请看看下面几种情况(假设楼主的考题是函数 f() 的 body):
f(“1”+1);
f(“abc”);
String joe = “1”+1; f(joe);