Vito 哥,面过很过公司,也陪着老板面试过别人,本篇百度技术岗面经,细节详细,题目精炼。并送上8字面试真经:不卑不亢,不慌不忙。 一、审视自己 就技术岗来说,我建议大家先对
Vito 哥,面过很过公司,也陪着老板面试过别人,本篇百度技术岗面经,细节详细,题目精炼。并送上8字面试真经:不卑不亢,不慌不忙。
一、审视自己
就技术岗来说,我建议大家先对自己的水平做一个全方位的了解。这个了解,可以通过面经来完善一部分,更直接的当然就是做题了。找别人了解经常会问到的面试题,再根据这些题的知识点进行扩充。当然,不同的互联网公司(对实习/应届)侧重点是不一样的,有些比较看重数据库方面的知识:比如美团以及大部分的国企,所以在熟练掌握技术之余,有必要做一些SQL的实战;有些比较看重你手上所掌握的技术和框架以及你对它们的理解深度:比如网易、滴滴,你可以发挥出自己对debug的熟练度,深入源码与面试官进行探讨;还有些公司则更看重你的技术选型能力:比如百度,阿里,在牢记基础的同时,你可以尽情向他们展现出自己宽广的知识面。
这些侧重点在岗位JD上都会有体现(JD很重要,不符合就果断放弃,符合则尽力争取),千万别在投简历的时候看见大厂就头脑发热一样地投,看见内推信息啥也不想直接就往别人邮箱里丢简历。这样既是对自己的不负责,更是对别人的不负责。
二、面试要点
说在前面:
实习就两面,没有群面,穿着没有要求,你要觉得自己技术过硬,可以穿拖鞋。一面:先面试,其中包括自我介绍,也包括下文中的面试题,一般面试java相关的,中间可能掺杂一些学校里的基础课如计算机网络等;面完后,再写算法。面试官会让你写一个比较简单的算法,排序算法的话要求3分钟内必须写完。二面:写算法,说项目。
1.对任何岗位来说,自我介绍都是必不可少的,关于自我介绍,网上有很多模板,不嫌恶心的话凑合着套用就行了。自我介绍主要体现的是你个人的语言组织能力和表达能力,如果之前有过实习经历或者有自己认为还可以的项目经历,可以在自我介绍的时候简单提一下。
这里着重提一点,职业规划很重要,不管你是真的有还是吹,这一点你必须要提前准备好,千万不要为了进大厂而进大厂,当你一旦表现出这种意愿,除非你和面试官是亲兄弟,不然的话就回去等通知吧。
此外,面试的时候碰见不知道或者不清楚的问题的时候,一定要说不知道,不要埋头苦想,回答地断断续续,当你这么做的时候,往往回答出来的答案都是错的。你说不知道的机会每轮面试都有1次,只要别的地方答的还不错,对你的总体评估不会有影响。
2.关于算法和数据处理,是最难的部分,我相信是很多人所跨不去的一个坑。强烈推荐去刷题,推荐《剑指Offer》、《编程之美》,总共就100多一点,讲真,春招到秋招两天背一题你都背得下来。
面试的时候难免会问到项目,关于项目这一块,如果有的话,要明确项目的技术价值在哪里,以及个人在该项目中扮演的角色。项目的架构记得越熟悉越好,最好能当场给面试官简要的画一下架构图。项目的大小不重要,态度很重要,一定要自己亲自做了,而不是看看文档、视频什么的就以为自己做完了,很多人二面三面莫名其妙挂掉的原因就是这样,切勿耍小聪明。
面试结束之后,面试官问你有什么想问他的时候,如果你比较忐忑的话,你可以让面试官对你做一个简要的评价,如果还行,那么你可以问这个岗位的日常工作都是什么,尽量表现出一副对新工作的渴望,毕竟招人进来是干活的,不是来背书的。
三、面试题
到这里就是我对面试的时候需要做的准备给出的意见与建议。接下来就上一下我秋招至今面试下来感觉到比较常问,有代表性的一些题目:
java基础
1. Collection与Collections的区别
2. Collection的集合类的结构
3. List与Set的实现类
4. HashMap的实现原理(JDK1.7与JDK1.8),包括扩容以及快速失败。
5. 类反射,加载器双亲委派
6. 线程与进程
7. 线程的状态以及切换时机
8.异常分类以及处理机制
高并发
1. 线程池的几种实现,以及其里面的参数定义。
2. Syn和volitale的实现原理(JMM与内存屏障)。
3. 锁,死锁。(很多很多的概念,需要牢记)
4. CAS
5. Syn与lock的区别
6. HashMap如何解决并发问题的(ConcurrentHashMap)
7. 原子类的作用
框架
1. Spring
a)IOC与AOP
b)声明式事务
2. SpringMVC
a)组件说明
b)执行流程
c)拦截器的调用时机
分布式相关
1. Dubbo的原理(RPC)
2. 服务的发布流程以及治理
3. NoSQL数据库的基本操作(建议以Redis为例,有兴趣可以看下其内部存储结构相关的源码,反正也不多)
4. 跨域Session处理
5. 一致性哈希
6. 消息队列的使用方式(MQ如何连接的安全以及保证消息的不丢失)
数据库
1. ACID
2. MVCC
3. 索引的分类以及原理
JVM
1. GC回收策略,以及出现诸如java.lang.stackoverflowerror 错误时该如何解决
2. JVM运行内存的分类以及四种引用
3. 各种收集器的收集方式(G1尤为重要)
4. 对JVM排查工具的使用
算法相关
1. 判断链表是否有环
2. 链表相交
3. 反转链表
4. 合并排序数组
5. DFS,BFS
6. 二叉树遍历
7. 各类排序算法以及可优化的方式。
总结
就业嘛,毕竟是个双向选择,如果真遭到了面试官的无情重锤,也没有必要太过在意。做内心强大的自己就好。最后,祝各位最终都能找到自己满意的工作!