很庆幸在交谈的这近一个小时内每句话都没白讲白听,对面的技术官让我很钦佩。总得来说,对方比较看重实战经验,几乎所有的问题都是从你自己的阐述中提取出来的。说实话,我在之前做过很多Java的功课,但实际上根本用不着,只要在自己的每个项目中多用心多思考,结束后勤加总结积累,技术自会装进大脑,答案也会手到擒来。罗列些问题,答案可以问谷歌。
1.从简历的项目谈起,说一下Lucene的原理,对于这个项目,如果让你重新再做会有哪些的改进?
2.改进方面我说到了分布式,于是就让谈谈分布式站点部署。
3.继续简历项目,对于一个普通人,请向我介绍下你做的某某产品。
4.负责哪些模块的开发,有何心得?
5.从我讲述中提取问题了:WebService的基本原理,怎么通信的?
6.谈谈Java解析XML的几种技术,以及区别。
7.从技术方面讲讲你对该产品的理解与体悟。
8.我谈到流程引擎,被抓着了,迅速又问引擎怎么工作。
9.又提到观察者模式,参与者都有哪些。
10.下面就是纯技术方面的了,首先OO特性。
11.接着多态的定义,在什么场景下会使用多态这个特性。
12.重载和重写。
13.多线程方面,Java的线程和OS的线程一样吗?优先级怎么设置?
14.Java线程的几个状态,每个状态的具体解释,从CPU角度进行分析(提示:CPU时间片)。
15.Java锁类型,如何为共用资源加锁?
16.重写equal方法时为何通常也会重写hashCode,两者存在什么样的关系,equal则hashCode相同?反过来成立吗,为什么?
17.英语怎样,交流5分钟。
后记:结束后就觉得自己在项目部分回答的一塌糊涂,以后得多多总结,不要好高骛远,注意提炼,就算是最简单的项目认真思考下来也会有不小的收获。说实话,其实在这次通话之前我刚从另一家公司出来,对方也很不错,笔试题比较有水准,但两个技术官给我的印象不大好,气场远没有这位强,问的也只是小皮毛,没有精髓可言,虽然结束后立即给我offer,但还是被我拒绝了,与这样的人共事我会很不甘心。遇到一位好的技术人员,哪怕只是短短的交谈也会让自己受益匪浅,虽不能与其共事,却又找到新的方向和动力,这份收获说不定比眼前的一份offer要大的多。