最近一段时间考虑到换工作,打算整理一下网络上曾经面试者分享的的面试经历并结合自己以往的面试经历和经验,帮助大家获取到互联网大厂的入职通知书,也就是入职offer。
本文整理网络面试者和本人的面试经历和面试经验分享给大家,主要出于个人层面上做个自我总结、沉淀一下面试经历以及让一些有能力的面试者了解一些互联网大厂企业面试过程,如果有人向往这些大厂企业,告知面试者需要做哪些准备从而能够如愿以偿的获取到互联网大厂企业的入职通知书。
面试做好提前准备
一谈到面试这个问题,很多人都会心里一紧,尤其是一些生性内向的人更是害怕在很多人或是领导面前述职,汇报工作。如何能够做到不怯场,在很多人面前侃侃而谈呢?
首先是要有充分的准备,任何时候做的准备越充分,心里就能够越淡定因为内心有谱。其次就是是要多加练习,尽量让朋友帮助你完成模拟面试,然后把面试的表现录下视频,反复观看自己的仪表举止和谈吐有没有不妥之处,最重要的是,把自己的叙述逻辑以及答题思路总结下,看看有没有改进的方式从而可以更进一步。最后,让专业面试官或经验丰富的人员指导自己的面试,全方位的培养自己的临场应变能力。
提前面试的表达及表现能力是可以锻炼出来的,所以要勤于锻炼,一切成功的都是由背后的积累一点一滴得来的。所以要打好基本功,平时多做知识的积累。
换工作期间是否裸辞?
如果面试者有意愿面试一些互联网大厂企业一定要注意不要裸辞!不要裸辞!因为一些互联网大厂企业的面向社会招聘的流程比较繁琐而且时间周期比较长,比如腾讯至少要有四轮面试或以上。
甚至面试的岗位级别高的话,甚至六到八轮,这也根据不同的部门可能有所差异。从投递简历到成功获取offer,一般情况下要一个月左右,如果裸辞,相信大家都承受不住,而且在一些互联网大厂企业还有背景调查,从获取到offer到正式上班还要持续一周多的时间。
互联网大厂面试最喜欢提问的就是基础理论和深层次的理解性问题,基础问题包括哪些呢?稍后举例,建议面试者提前最好准备。深层次的问题包括哪些呢?其实就是面试者平时办公时遇到的问题,个人建议不要停留在解决问题的层次,而是要搞清楚背后的原理。
腾讯面试题
下面分享一下腾讯面试者四面技术的面试题以及HR面试聊的那些内容?(面试题的答案会在后续公众号中分享,关注微信公众号“Java精选”。)
1)有序数组排序,二分查找法,时间复杂度;
2)举例常见排序算法并说下快速排序法的过程,时间复杂度;
3)怎样推算出具有n个节点的完全二叉树的高度为[LOGn]+1,推算过程;
4)朋友之间的点对点关系用图维护,怎么判断两人是否是朋友,并查集,时间复杂度,过程。
5)单元点最短路的方法,时间复杂度;
6)如何实现关键词输入提示功能,使用字典树实现,其复杂度程度,有没有其他方案,回答哈希,如果是中文的话,分词后建立字典树?
7)HashMap的实现原理;红黑树的结构,查询性能如何等。
8)Java垃圾回收机制如何实现?
9)什么是死锁,产生死锁的原因及必要条件。
10)线程和进程的区别?进程的通信方式。如果代码执行过程中进程阻塞、内存泄漏等情况如何排查原因?
11)Linux系统中如何查看进程、CPU状态、端口占用情况,CPU的执行方式。
12)Linux系统中大型文件比如10G以上文件如何查找文件中指定字符串的位置?
13)讲述一下以前做过的项目;除正常工作编写代码以外,还学习过什么技术框架?
1)快速排序法的时间复杂度,冒泡排序法的时间复杂度,快速排序法是否稳定,快速排序法的过程。
2)一百万个数字,如何找到前1000个最大的数字,采用堆排序,那么怎么构造,怎么调整,时间复杂度。
3)一个矩阵,从左上角到右下角,每个位置有一个权值。可以上下左右走,到达右下角的路径权值最小。
4)说了一下深度优先搜索算法递归实现,如何优化?
5)说了一下用迪杰斯特拉算法(Dijkstra)的思路。
6)四辆小车,如果每辆车加满油可以走一公里,那么如何能让一辆小车走的最远?
7)hashmap的实现,hashtable,concurrenthashmap实现和区别。
8)为什么MySQL数据库索引选择使用B+树?
9)Linux系统中CPU占用100%如何排查?
10)Linux系统中大型文件比如10G以上文件如何查找文件中某一行的内容位置?
11)Redis内存数据库中内存指的是共享内存吗?Redis的持久化方式
12)秒杀系统(同一时刻有大量的请求争抢购买同一商品并完成交易的过程)的架构设计。
1)十亿个数字的集合和十万个数字的集合而集合的数字不重复,如何求它们的交集。
2)十亿个数字,如何找到前100个最大的数字,采用堆排序,怎么实现,怎么调整?
3)TCP和UDP的区别,具体使用场景。TCP四次挥手讲一下过程,最后一次ack如果客户端没收到怎么解决?
4)对于socket编程,accept方法有什么用途,在三次握手中属于第几次?
5)对于单例模式,使用场景有哪些举例。除了单例模式,适配器模式怎么实现?
6)讲述一下全局ID生成器,分布式ID生成器怎么实现?
7)直播架构是如何设计的,有什么要点和注意事项?
8)Redis和MySQL有什么区别,用于什么场景。
9)最近看什么书,什么时候开始写博客的?
1)自我介绍
2)自述项目以及在项目中有哪些收获?
3)Linux了解哪些基础命令和知识。proc文件系统了解吗?
4)TCP和UDP的核心区别。
5)TCP的四次挥手,time wait状态有什么意义?
6)面试官“你有什么想问我的问题?”。
1)自我介绍
2)实习期间的收获
3)外地交流期间个人体验
4)之前实习公司的情况,目前拿到offer了吗,你会如何选择?
6)你的优缺点,缺点方面如何改进?
7)你认为你在学生时代最成功的是什么事。
8)你的预期薪资。
在职面试的话,建议约面试官休息时间或周末面试,甚至可以询问联系你的HR或面试官能否电话面试,实在没办法还比较珍惜这次机会的话建议想办法请假出去面试。
互联网大厂企业的流程比较长,有些可能是通过多人面试的过程择优录取,也有些可能是因为面试官临时出差或者休假(举例:腾讯面试环节中第四轮面试者休假)等不同情况吧!反正大厂企业流程都是这样。
每轮面试结束后切记不要急着问结果,否则可能适得其反。可以等三至四天后如果还是没有通知,这时候就可以主动询问情况了。
每个面试官的处事方式和面试风格都不相同,有的可能会问一些理论知识,有的可能会问一些网上的经典面试题,面试者不能同时具备应付不同面试风格的面试官,因此坚持自己的办事方式和风格,期望遇到和自己意气相投的面试官,因为运气的成分也是比较重要的。
关注微信公众号“Java精选”(w_z90110),回复关键词领取资料:如Hadoop、Dubbo、CAS源码等等,免费领取资料视频和项目。
涵盖:程序人生、搞笑视频、算法与数据结构、黑客技术与网络安全、前端开发、Java、Python、Redis缓存、Spring源码、各大主流框架、Web开发、大数据技术、Storm、Hadoop、MapReduce、Spark、elasticsearch、单点登录统一认证、分布式框架、集群、安卓开发、iOS开发、C/C++、.NET、Linux、Mysql、Oracle、NoSQL非关系型数据库、运维等。