
Java 中的泛型带来了什么好处?规约。就像接口定义一样,可以帮助对于泛型类型和对象的使用上,保证类型的正确性。如果没有泛型的约束,程序员大概需要在代码里面使用大量的类型强制转换语句,而且需要非常清楚没有标注的对象实际类型,这是容易出错的、恼人的。但是话说回来,泛型可不只有规约,还有很多有趣的用法,容我一一道来。
泛型擦除
Java 的泛型在编译阶段实际上就已经被擦除了(这也是它和 C#泛型最本质的区别),也就是说,对于使用泛型的定义,对于编译执行的过程,并没有任何的帮助(有谁能告诉我为什么按着泛型擦除来设计?)。所以,单纯利用泛型的不同来设计接口,会遇到预期之外的问题,比如
[……]阅读全文










最近在看一本书,叫做 
今天是来武汉的第四天。有机会来华科招聘毕业生,是一件很有趣也很有价值的事情。有一些是很有意思的见闻,更多的是锻炼以及收获。大学里面有很多优秀的人才,有一些人的错过则颇为可惜。请那些勤奋、有天赋而且有抱负的学生保持热情,至少我可以明确地感受到,人才的价值。互联网公司为了招聘到优秀的人才,倾注了非常多的精力。以我们为例,这一次来华科的招聘团队 7、8 个人里面,大部分都折腾得非常疲惫,每天也没什么时间吃午饭,晚上还要讨论结果、审阅简历,回酒店倒头就睡。但是很多非常有潜质的工程师,往往还持有其他互联网企业的 offer,这其中对人才的竞争是非常激烈的。
在系统设计阶段考虑全面很难,有许多人倾向于把整个设计分成若干阶段,在迭代中完成整个设计,这本身是非常好的,但是,就如同 “先做出来,以后再优化” 这样的经典谎言一样,本身并无错,只是许多程序员都不习惯于真正的迭代设计和迭代优化。举例来说,有一个日益复杂的类,每个人都修改一点点,一直到最后都没有人愿意去做重构,大家的心态都是一样的:“我只修改了一点点,为什么要我去动那么大的刀,于我没有任何好处”。我不在这里谈论这一问题的解决办法,我倒是想说,在开始阶段考虑清楚问题在多数情况下还是很有好处的,设计考虑得越是清楚,在后续阶段代码可以承受越多的变更而不腐朽。
很多非计算机相关专业的学生想投身软件行业,甚至相当程序员。不少学生在担心自己专业不对
首先,Jeff Dean 是谁?
最初我是在公司内部的 broadcast 上面听到有 principal 介绍到它的,和 AspectJ 归在一起。看了几个例子之后觉得有点意思,就去