百度校园招聘开发岗位回忆

百度校园招聘回忆

去年的秋招已经过去很久了,这几天完成了毕业设计的论文。感觉整个人轻松了很多,趁着这段空闲的日子,回忆一下我参加的几次的招聘的情况吧。由于秋招错过了阿里巴巴的笔试,去霸面没有给机会,腾讯基本不招java岗位,所以没有投简历。所以也就参加了4个面试。先来说说第一个,百度的面试吧。

我在川大望江校区参加的百度成都的笔试,当时很多教室全都坐的满满的。我边上的同学还是专程从云南跑到了成都来参加的笔试。顿时感觉到了就业的深深的压力。

百度校招的题目还是比较偏向基础。先是简答题,总共三个小题,第一题是简述TCP/IP连接时的三次握手和断开时的4次握手。第二题是内存管理淘汰算法,我写了四种,FIFO先进先出、OPT最佳淘汰算法、LRU最近最少使用算法、 LFU最少访问页面算法。第三个题目是数据库设计的范式,就是1NF,2NF,3NF,BCNF。然后是算法题,也有三个小题。第一题是找到一个单项链表的中项。第二题是在一个集合S中找出最大元素C使得C=A+B,其中A,B均属于集合S。分析复杂度。第三题是使用栈先进后出来模拟队列先进先出的结构,实现函数:enqueue(入队),dequeue(出队),isEmpty(是否为空)的判断。最后是一个系统设计题,是一个大题。题目大概是设计一个云端的手机推送服务的设计。总体感觉百度的校招笔试题目难度还是比较大的。我做的不算太好。

笔试后的第二天晚上,接到了面试的通知电话。通知后天上午去一面。百度的面试安排的非常好,也是我感觉整个校园招聘中感觉最好的。在酒店里,一对一的面试。一面的面试官看上去很年轻,说话也很和气。首先是让我花几分钟自我介绍一下。顺便说一下,这也是我参加的所有的面试的第一个问题。然后开始问我问题,这里想吐槽一下。百度的招聘一面会问一些脑筋急转弯一样的题目,比如问了我赛马的问题,就是有9匹马,怎么通过最少的次数找出跑的最快的马。当时由于想的太复杂,以为要考算法。竟然想到了归并排序,一直在回忆归并排序的算法,后来才发现是个很简答的问题。结果浪费了一些时间,最后勉强说了出来。所以提醒一下大家,面试时不要把问题想的太复杂,也不要太紧张,正常发挥就好。然后又问了上台阶的问题。就是总过有n阶的台阶,每一步可以上1级,也可以上2级,问共有多少种不同的走法。后来才知道这个题是网上流传很广的一道题,可惜我没有看到过,不过我想到了递归,然后花了一点时间,答了出来。考完了脑筋急转弯,就开始考察简历上的知识了。由于我面的java,所以就问了我一些基础的java的问题,感觉没有什么难度。然后又看到我简历上说,熟悉linux使用,就问我知道tail命令吗?我说就是查看一个文件的末尾几行,然后他就让我写个方法实现这个命令。我的方法是把一个文件所有的行存到一个ArrayList<String>中,然后输出要求的最后几行。他问我还有没有更加好的方法,想了一会,就说没有。然后又问了java的多线程的一些简单的API,比如run和start方法的区别。我就说看过jdk的一些源代码,start方法是native的,所以一定是调用底层操作系统启动线程的,run方法里面是线程执行的任务代码。然后又问了我join,yield方法。最后问我了volatile关键字有什么作用,我说了,又问我它能实现原子性吗?我说不能,说了些原因。又问我知道volatile实现可见性的底层原理吗?我当时没有看的那么深入,就说不是很清楚。最后,他看到我简历上写的hadoop,hbase,就问了我一些关于hbase的问题。由于我当时正在看那方面的书,所以感觉答的还不错。最后就问我有没有什么问题要问的。我就随便问了几个问题,然后又问他我答的不是很好的问题的解决方法。这是一个学长教我的,可以显示出你的好学。然后大概面了一个小时左右。面试过程中,面试官一直在打字,据说是在反馈面试结果。

然后下午的时候接到了一个电话,通知后天上午去参见2面。2面的面试官是我遇到的最非主流的面试官。进到房间的时候,他好像刚起来的样子。鞋都没有穿,翘着二郎腿,首先介绍了下自己。然后我说我擅长java,他长叹了一口气说,终于来了一个会java的,他也是比较熟悉java,说最近遇到的都是面c++的。然后就开始问,先问我一些jvm的知识,比如jvm的内存模型,类加载的一些问题。又问了我一些java的垃圾回收算法,又问我怎么设置参数,选择什么垃圾收集器。我没有答上来,然后他就说这些都是实践,你们比较缺乏实践,理论方面看得多。他又看到我简历上写的阅读过部分jdk的源码,就开始问我HashMap的实现原理,由于我以前重点阅读了HashMap的源码,所以没有什么难度。然后又问我知道ConcurrentHashMap吗,我简单说了一下,然后又问我知道实现原理吗?我之前在一个博客大概看过,就说了它是通过分段,加写锁实现的并发,等等。然后他又问我了java5并发包的一些API,比如Callable与Runnable的区别,Future,当时也正在看java并发编程那本书,所以也基本都答出来了。接着又看到我简历上写的熟悉基本的java设计模式,就让我写一下单例模式,由于在纸上,写了两次才正确。然后又说,你熟悉linux吧,说说常用的shell命令。我当时脑子抽了,随口说,知道的太多了,说不完。然后他就说,那你写一下,在一个目录下找出所有的文件名为xxx的第一行有xxx内容的文件,然后根据大小排列,输出文件名。我当时就蒙了,果然祸从口出,早知道就随便说几个命令不就行啦。所以大家以后面试的时候一定要谨慎,谦虚。由于当时忘了find命令的参数,写了给他,说不对。然后我就说用awk加管道可能可以,但是我忘了参数了。然后就问我平时上什么网站,看什么书学习。我就说了几个,比如csdn,cnblogs,等等国内的一些论坛。然后我又说,还会用百度查资料,他顿时很鄙视的眼神看着我说,我要是你,就用google了。然后我就尴尬的笑了笑,拍马屁拍到了马腿上。然后就让我问问题,我就说百度好像出了一个百度眼镜,怎么样?他又是一副鄙视的表情,说,百度的算什么眼镜,后面那么大一坨东西。根本就不算是眼镜,那么重,说会戴。然后又说人家google眼镜把东西都做在镜框里,大大的赞美了一番。然后我也笑了,我都有点怀疑他是google的卧底了。然后我就说,感觉您是一个比较有个性的人。然后又问了几个问题,就结束了,面了大概40分钟左右,感觉难度比一面要大一点。二面的面试官在面试过程中也在不停的打字。

如果有可能,我带你去远行。躺在德德玛的草原,

百度校园招聘开发岗位回忆

相关文章:

你感兴趣的文章:

标签云: