字节八面面经,发出来攒攒人品~

   日期:2020-09-25     浏览:99    评论:0    
核心提示:职位:后端研发,base杭州目录(话不多说,直接正文)7月23日 18:00 一面 60min7月29日 16:00 二面 55min8月9月 16:00 三面 80min8月18日 被北京捞8月24日 找HR约了四面8月28日 14:00 四面 55min9月3日 被北京捞职位:后端,Data部门,base北京9月15日 16:00 一面 63min9月17日 17:00 二面 50min9月21日 17:10 三面 50min9月23日 15:...

职位:后端研发,base杭州

目录(话不多说,直接正文)

7月23日 18:00 一面 60min

7月29日 16:00 二面 55min

8月9月 16:00 三面 80min

8月18日 被北京捞

8月24日 找HR约了四面

8月28日 14:00 四面 55min

9月3日 被北京捞

职位:后端,Data部门,base北京

9月15日 16:00 一面 63min

9月17日 17:00 二面 50min

9月21日 17:10 三面 50min

9月23日 15:00 HR面 15min

面试总结

7月23日 18:00 一面 60min

  1. 自我介绍+科研项目介绍(约20min);

  2. 后端开发项目简单介绍(我的开发项目是辅助上面的科研项目的,比较简单,约3min);

  3. 你有做过计算文本相似度的任务吗?(感觉可能是他们现在有这样的需求,我项目和简历全程没提这个)

  4. 能给我简单介绍一下卷积神经网络吗?(汗!开发岗问我这个,水过去了)

  5. 浏览器输入一个网址,到页面呈现出来的整个过程;(常见题)

  6. HTTP是基于TCP还是UDP?(常见题)

  7. HTTP和HTTPS的区别,对称加密和非对称加密等;(常见题)

  8. 数据库建立索引的原则是什么?(我确认过,不是索引的匹配原则,而是判断是否需要建索引的原则,就说了大数据量才有必要,然后说了索引的利用率,对重复数据多的列就没必要建,感觉没答好);

  9. sql题:单表中查询所有科目都大于80分的学生姓名;(比较常规,但是我竟然写错了!而且面试官没提醒我就过了,我后来复盘才想起来);

     # 解法一:先查有科目<80分的学生姓名,然后排除这些同学,最后去个重 SELECt DISTINCT name FROM student_score WHERe name NOT IN (SELECt name FROM student_score WHERe score < 80);  # 解法二: SELECt name FROM student_score GROUP BY name HAVINg MIN(score) >= 80;
  10. 算法题:字符串无重复的最长子序列(经典!算法恒久远,一道永流传);

  11. 口述算法题:两个队列实现一个栈(当时没答好,想了个复杂度很高的);

  12. 你们项目之中有没有遇到需求,需要往一个多主机的分布式系统上发送请求(我确实没有相关经验,因为科研压力比较大,业务相关的内容了解地确实比较少,遂答没有。)

  13. Linux上如何查看日志?(我觉得他是想问搜索日志,就回答了 grep命令查找关键字,并且说我们通常科研项目日志少,通常是下载到本地看);

  14. Linux怎样查看端口占用?(记得有个netstat命令,但详细的记不清楚了)

  15. 你的项目怎样部署在服务器上?(常见题)

  16. 反问。告知假如通过的话HR会联系我。一面结束。

下来之后感觉凉凉,因为看很多面经都是一二面连着,而且这个面试官有点严肃,语气比较温和但是脸上不苟言笑。第二天早上忍不住给HR发短信询问,告知通过。

7.26约二面,约到7月29日下午四点。

7月29日 16:00 二面 55min

  1. 项目相关

  2. 微博的数据库存储设计,建立索引,后续优化(后续优化不怎么会,就瞎扯的);

  3. 算法题:二叉树的左视图(要求多层打印,比leetcode上的稍微复杂一点);

     

算法题做完,自己写用例运行通过。面试小哥简单看了一下,然后就说先到这,今天三面的话可能来不及了,我反问“那意思是我二面通过了吗”,小哥说嗯。然后就道谢say goodbye了。等待三面通知中。

7月31日 主动给HR发了短信,然后约了三面在8月9日。(我这个面试时间跨度有点大...我面了个假字节?)

8月9月 16:00 三面 80min

  1. 平常兴趣爱好?喜欢看推理小说、动漫、电影、玩游戏;

  2. 推理小说详细说了一下;

  3. 喜欢的动漫详细说了一下;

  4. 喜欢的游戏详细说了一下;

  5. 考研和工作规划;

  6. 算法题:字符串转化为数字(atoi);(虽然是原题,但是我有边界没处理好,大概率因为这个挂掉了)

  7. 简历上的科研项目大拷问,非常详细;

  8. 如何看待美国和字节近期的事件?

  9. 反问。

三面大部分时间都在唠嗑,不过主要是我在说,面试官就不停地抛一些问题,然后我就balabala。因为面试官没开摄像头,所以我是一直对着黑屏讲话,看不到面试官表情,心里就有些没底。

最后,许愿HR面,字节救救孩子!

8月18日 被北京捞

从三面后就一直等待消息,期间也问过HR,也回复说再等等。

直到8月18日中午,接到另一个字节HR的电话,说杭州这边不合适,有没有考虑去北京。我问面试流程,说是流程会短一点(大概少一面)我同意了。(最后直接从终面开始了,但是我没把握住机会)

希望这次会有一个好结果吧。

8月24日 找HR约了四面

上次HR给了捞人的电话以后,就再也没有联系。心里有点慌,于是24日中午给联系的HR打了电话,HR说帮我联系一下(感觉字节的HR小姐姐都很好,感恩)。

晚上HR加了微信,跟我约了28号的四面(直接技术终面),许愿通过!!!

8月28日 14:00 四面 55min

  1. 问深度学习问题折磨我;(项目里有一个用深度学习的,面试官看到了就一直问,甚至让我手写公式,我是走后端方向的啊。期间我一直说“不熟、不清楚”,面试官还要一直追问,总共问了7、8分钟,直接给我干蒙了)

  2. 银行家算法

  3. 虚拟内存

  4. 手撕队列

  5. 手撕优先级队列(堆);(这个没写出来)

面完第三天,问HR,告知不合适。

9月3日 被北京捞

9月3日晚上,北京另一个HR加我,问有没有兴趣再试试,字节北京Data的后端岗位,我同意了,约了9月15日一面,留出一段时间再复习复习(楼主老拖延症了)。

职位:后端,Data部门,base北京

9月15日 16:00 一面 63min

  1. 一上来没有自我介绍,面试官的原话:”我就不问项目了,你那些项目和我们后端也没有关系。我们这次的面试会有一点难”。

  2. 有实习吗?为什么不去实习?

  3. HashMap为什么线程不安全?假如我的HashMap不会出现哈希冲突,那么会有并发问题吗?

  4. ConcurrentHashMap如何实现线程安全?

  5. 乐观锁、悲观锁?乐观锁ABA问题如何解决?

  6. Synchronized的底层实现原理?(这个不会)它用的是业务层的指令还是操作系统的指令来实现的?Synchronized的性能如何?JDK1.8对其进行了哪些优化?

  7. JVM的内存结构?String s = "hello world" 和 String s = new String("Hello world") 的区别?int a = 100 ,这里 100 存在哪里?为什么不存栈里?

  8. Error 和 Exception 的区别?Error 能不能用 try catch 捕获?Error应该如何捕获?捕获 Throwable 能否捕获 Error?

  9. StackOverFlowException是什么原因引起的?ClassNotFoundError是什么原因引起的?

  10. 栈的大小用什么参数来设置?默认有多大?堆默认有多大?方法区默认多大?

  11. 类元信息存在哪里?类什么情况下会被卸载?被 synchronized关键字持有的类的Class对象会被卸载吗?

  12. GC如何判断一个对象是否存活?可达性分析是用什么数据结构来存的?

  13. 数据库 where a = xx and b = xx 和 where b = xx ,这两条SQL如何建索引?

  14. 有一个复合索引 b_a ,假如我们查 where a = xx and b = xx ,能走索引吗?你确定MySQL会帮你优化吗?

  15. 数据库 where a = xx or b = xx 和 where b = xx ,这两条SQL如何建索引?

  16. MySQL单表大概能存多少数据后会性能下降?单表能存一亿吗?假如受限,那主要限制是什么?假如不建索引,那还有什么因素会影响它?

  17. MySQL的并发量能达到多大?(我说没实习过,对并发量没概念)

  18. Redis熟不?(我说不熟)

    至此,面试才过了25分钟。

  19. 算法题1:单例模式。我写了典型的双重检查锁+volatile的单例。问:第一个为null的判断去掉行不行?第二个为null的判断去掉行不行?中间都加了 synchronized ,那为什么内层还要判断一下是否为null?volatile起什么作用?

  20. 算法题2:双线程打印1~10,一个线程打印奇数,一个线程打印偶数。

  21. 算法题3:(没做出来,说了个暴力的想法,还说错了)

    题目描述:

    给定两个链表,判断他们是否有交叉,如果有交叉,输出所有的交叉节点。节点的数据不会重复,节点数据相同则认为有交叉。 例如 1->2->3->4 和 5->1 ->2->8->9->3->4->0 有4个交叉点,分别是1,2,3, 4。 注意链表是有顺序的,多个交叉点以第一个链表的第一个交叉点为起点,比如1->2->3->4 和 4->3->2->1 的交叉点只有1个,输出 1。

    说明:

    和常见的判断两个链表相交的题目不同。本题中的 两个链表并未真实地产生交叉(无共用节点),此处的交叉仅仅指值相同。

面试感受:压力很大,面试官没开摄像头,并且问的问题非常快,没有任何闲话。问题问的非常多,我回答一个之后,面试官要么说“ok”,要么说“不对“,我有好几个都是回答完面试官直接说”不对,不是这样的“。加上算法题最后一个也没有做出来,我一度感觉凉凉。

面试完不到半小时,HR告知通过,我约了二面17号。

9月17日 17:00 二面 50min

  1. 科研项目,10min。(面试官很厉害,提问的都是项目中很关键的问题)

  2. 算法题:连续子数组的最大和

  3. 上一题进阶:如何拿到这个连续子数组呢?

  4. 上一题再进阶:一个矩阵,找和最大的子矩阵(这里的矩阵不一定是正方形,长方形也可以);陈述思路。面完下去找到了原题:面试题.最大子矩阵

    至此,面试过去了40分钟,因为我题目做的比较慢,面试官也一直在引导我。

  5. 操作系统会给进程分配一部分内存,说一下这个内存结构,有哪些部分。程序申请一些常量,或者一些临时的变量,这些是放在哪一块的呢?(操作系统层面,非JVM层面)

  6. 两个进程的共享内存是如何实现的?进程通过什么方式申请共享内存?

  7. Linux为什么要区分用户态和内核态?

  8. 数据怎样从用户空间进入到内核空间?又怎么从内核空间到内存空间?或者说,应用进程如何从内核空间拿数据?

  9. TCP四次挥手的过程。

面试感受:这一轮面试官很会引导,问的问题也都比较友善,交流的过程中也会有很多反馈,体验很好。

面试完十分钟,HR告知通过,我约了三面21号。

9月21日 17:10 三面 50min

  1. 自我介绍;

  2. 项目介绍;

  3. 项目登录,Cookie和Session一些问题;

  4. 算法题:

    看到题时我是懵逼的,最后花了35min,写了一个很菜很菜的实现。而且Date类的api也忘了,用自创的伪API实现的,面完感觉凉了。没想到在第二天(9.22)下午竟然收到了HR面的邀请,算是意外之喜。

    顺便补充,三面面试官特别年轻,看着像刚工作的,最后我忍不住问他,他说他30出头,果然是大佬。30出头就能当三面官了。

  5. 反问。

9月23日 15:00 HR面 15min

  1. 自我介绍;

  2. 对字节面试的整体感受;

  3. 未来发展规划、意向地点;

  4. 目前面了哪些公司,手头有什么offer,选择offer的标准;

  5. 自我评价,自己的优缺点;

  6. 女朋友情况;

  7. 反问;

面试总结

总体来说,面试过程其实挺坎坷的,毕竟前前后后面了8次,持续了整整两个月,但最后终于收到了offer,还是挺开心的。最后我也将这些面试题和答案也为大家整理好了。

面试宝典:戳这里免费领取,暗号:CSDN,还有更多大厂面试专题资料哦!

 

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服