刚才收到offer了,功夫不负有心人,感觉很兴奋,按照之前的记忆写下面经。
博主投递的是字节跳动效率工程团队,是前不久公司在年级群里发通知招聘实习生,然后我就去投了。
投了简历过了3天收到笔试邀请,笔试是牛客网在线笔试,2道算法题,都是leetcode原题。(感觉笔试比较简单,公司应该是重面试不重笔试)
笔试结束3天一面,视频面的。
一上来写一个算法题,给一个无序数组,找一个分割点,使得分割点左边的所有数小于等于右边所有数,分割点要求尽可能小。
这个题我写了个O(n)的时间复杂度,中途写出bug,差点翻车。。。
然后就问基础:
1.先问在地址栏数baidu.com访问百度首页,涉及哪些协议。
2.我说到个https,他就问https中,客户端和服务器交换密钥的过程。(面试前一天才看过,不然答不出来。。)
3.讲一下操作系统内存管理机制(给他讲了下页式管理之类的)
3.http报文header和body的分隔符是什么,怎么判断http报文结束。
4.写过什么多线程的程序?我说以前学java上课写过那种窗口卖票的,他就问多线程是怎么避免冲突的
5.java和c++哪种语言好,为什么
6.网络怎么分层的
7.服务器怎么生成sessionID,我说我不知道,他就问如果让你设计一个生成sessionID的算法,需要考虑什么问题
8.客户端访第二次访问服务器是怎么找到自己的session的
9.用户上传了文件,之后又上传了内容完全一样的文件,怎么判断新上传的文件和旧文件一样
10.还有些问题,时间隔久了,想不起来了。。。(反正都是网络,操作系统的基础,只要基础稍微好点,问题不大)
一面结束第2天二面,也是视频。(二面被面试官吊打了。。)
1.写一个二分查找
2.旋转数组找目标值,时间复杂度要求O(logn):
给一个数组,分为左右2部分,每部分升序,左部分的数都比右部分的大,在数组中找目标值的下标。(leetcode原题,二分法。)
3.(口述)A到B点相隔n米,从A点出发,第一步只能前进1米或后退1米,第二步只能前进2米或后退2米,依次类推。求刚好走到B点最少需要的步数。
4.讲下B树,B+树,B*树。(B*树只知道概念,讲不出来)
5.进程,线程,协程区别。(协程只知道概念)
6.redis了解吗(我说只知道一些基础,面试官就说算了,不问你这个)
7.多进程和多线程区别
8.mysql底层原理知道多少,讲一讲。(讲了下innodb和myisam两大存储引擎区别,还有b+索引的大致原理)
9.进程通信的方式? 信号和信号量区别? 消息队列是什么?
10.讲下tcp和udp在socket层面的区别(这个有点懵逼。。)
11.详细讲下滑动窗口机制
12.c++内存分区?堆和栈的区别?静态存储区和常量区存放什么?
13.还有的问题之后想起来再补充。。。
二面结束后隔了好几天没消息,去问HR,才说面试过了,然后三面是电话面试。
三面是个HR面的,问读研规划、为什么实习、平时怎么学习、看什么技术网站。。。
三面过了两三天就收到了offer
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。



