本帖最后由 itmian4 于 2015-1-24 19:18 编辑


参加了IT面试网组织的模拟面试,今晚刚刚面试完,时常一个小时,是两个在大公司工作多年的工程师来面的,下面是大概的面试过程:

首先自我介绍,就随便说了下,学校背景,平常喜欢Java什么的。

      然后是介绍自己做过的项目,就说了下自己写的基于map,reduce的一个问答社区搜索引擎,就是自己和同学们做的。问了下关于搜索引擎的各个部分的问题,比如搜索引擎的各个组成部分,倒排索引的数据结构,实现机制。围绕着我的分布式爬虫问了去重的实现。

      然后就是问实习的时候,在一个创业公司里面做的支付模块的问题。注意是问的支付的过程,以及自己实现的时候的比较好的地方。然后问了web安全的东西,HTTPS的原理。然后问数据库三范式,乐观锁,数据库索引的数据结构,就是b+树。紧接着问数据结构里面的红黑树的特性。

      然后就是问有没有看过concurrent包的源码,我说看过集合类的源码,然后就让说一说,hashmap,hashtable,ConcurrentHashMap的区别。随后就是问了spring中ApplicationContext和BeanFactory的区别。

      最后就问了自己做的项目里觉得满意的或者难点的地方,我说了下netty的Channel非线程安全导致的多线程写Channel,以及相应的解决办法(现在想起来,其实自己是用的生产者/消费者模型)。然后说了一下自己觉得满意的就是使用了一些设计模式。

      整个过程感觉面试官在引导着自己去问自己擅长的东西,交流很顺畅。对于我不懂得地方,也是就不会追问下去。而且,所问的问题也都是在工作学习中非常看重的基础问题,包括一些数据结构的东西。感悟呢就是,数据结构和算法要加强,web安全不懂得地方,还有就是一些学校里少见但是工作常用的红黑树的数据结构。