字节跳动三面四小时的灵魂拷问,结局我哭了但下次还敢

宇宙条是春招第一家给我面试机会的公司,收到面试邀约的时候没抱太大希望,全世界都知道宇宙条唯算法论,算法这块是自己最薄弱的地方,但是没想到一路闯进了三面,有点瑟瑟发抖,三面面试官面完后说要和其他两个面试官沟通完之后才能给我结果。下面就看下都问了些什么吧,为了写面经我还特意录音了。

字节跳动三面四小时的灵魂拷问,结局我哭了但下次还敢

第一面

面试官很准时,是个邻家小哥哥类型的帅小伙,可能是刚刚睡醒发型有点随意但是颜值高,下午两点准时上线了,打了个哈欠就开始视频面试,全程1个小时28分钟,面的都是很基础的东西。

  1. 自我介绍
  2. 数据库索引的作用是什么 这里我回答了下索引类型,底层存储,查询效率
  3. 为什么使用B+树存储 这里与红黑树进行了比较,然后操作系统文件系统的页相关回答
  4. 数据库范式有些什么,为什么要有这三大范式 三大范式概念说了说,然后从设计方面回答了为什么要有
  5. mysql数据库底层存储 从存储引擎方面说
  6. 数据库类型,关系型数据库还有什么?从典型代表关系型,文档型等,mysql,mongodb,hbase,redis,es这些回答,各自讲解优缺点
  7. 讲讲jvm,内存泄漏怎么理解的 从虚拟机参数调优,虚拟机作用方面回答(讲到后面我有点激动,我说这是Java能飞起来的灵魂,把我们都给逗笑了)
  8. 垃圾回收机制,垃圾回收算法讲解一下,怎么判断是老年代,触发垃圾回收的时机在什么时候 这个讲了挺久的,讲的比较详细,他后来问我从哪里学的,我把周志明那本《深入了解jvm虚拟机》给他看了
  9. 内存分配怎么分配的 将堆,栈,引用计数器,方法区,本地方法区放些什么都给讲了
  10. 软引用,强引用,虚引用,弱引用那四大引用各自讲解一下 顺利讲了下,其中的弱引用的回收时机我已经记不清,这四大引用概念性太强了,很早之前看的能记得这四个我觉得自己已经是超常发挥了
  11. Java垃圾回收机制怎么样,弊端 自由发挥中,与c比较等,讲了讲弊端,到这里就结束了虚拟机的部分
  12. 平时学习是怎么学习的?
  13. Java基础开始,sychronize底层怎么实现的?
  14. synchronize是怎样的锁?
  15. synchronize常用场景的使用?
  16. synchronize可以修饰什么属性,变量什么的?
  17. synchronize如果锁一个字符串会出现什么问题?这个我不清楚,我从内存分配的角度来回答的,字符串可能会存在常量池和堆区什么的,各自情况。后来我搜索这个问题发现回答的方向大致对了,但是这个问题其实深挖很有料
  18. 线程的同步机制有哪些?这个时候我一开始没反应过来在问什么,面试官人很好引导我,还问我有没有学过操作系统,嗯但是操作系统学的有点儿早,差点滑铁卢,还好在学nginx的时候了解了这方面知识,给答了出来,到这里很慌了,想了很久,我有点乱,面试官笑着叫我别乱
  19. 线程状态有哪些,转换顺序呢?
  20. 线程和进程的关系?一个进程多个线程,一个线程崩溃会有什么问题?
  21. 从线程同步机制引入到锁,我知道几种锁?说了五种,简单介绍了下
  22. 你知道自旋锁吗?解释一下
  23. 悲观锁乐观锁怎么理解的说一下?
  24. 下面到计算机网络 网络结构几层,各自说一下
  25. http属于哪一层,传输层协议有什么,http用的哪一种,网关属于哪一层,路由器属于哪一层?确定吗?交换机属于哪一层
  26. tcp/ip 有哪些,怎么把七层干掉的?这里我回答的有点快,一开始说错了,概念性的东西我都是吃老本,面试前没看,面试官让我再回答一遍,我的血压在飙升
  27. 数据链路层干嘛用的,物理层干嘛了?
  28. ip协议说一下?属于哪一层
  29. 在浏览器输入一个网址,从输入到结果呈现到页面发生的整个过程说一下。回答过程中问了dns相关
  30. 开始算法了,苍天饶过谁

第一个:给一个正整数,判断是否是2的n次幂,他说用最快的方式不要递归?肯定是运算的方式,你能想到的数的运算有哪些,除了加减乘除?这个地方讲了很多,运算太多了,但是感觉不是面试官想要的,我最后把二进制的移位都说了出来,才get到他的点,问还有些什么,他最后问我怎么没提异或,并且出了几个二进制数让我异或算结果

第二个:给一个数组,数组里面有rgb三种数,数量和顺序完全无序,给一个算法按照他想要的r都在前面,g都在中间,b都在后面,用移动次数最少的算法进行计算,写算法 这个地方一直叫我优化再优化,我快疯了,我说我不行要放弃了,他说你简历不是写着强烈的好奇心求知欲嘛,没事再想想,我直接笑喷了才放松了点继续想,这简直是心理战 31. 提问环节,结束了让我等一会儿第二个面试官马上上线,全程一个半小时

第二面

一面结束,我猛灌了杯水去了趟卫生间,第二面就来了,第二面也是个小哥哥,声音软软的,皮肤很白,看起来比较儒雅,坐在床上抱着个电脑面我,全程1小时11分钟

  1. 自我介绍
  2. 问我计网,操作系统,组成原理,数据结构哪个学的最好?我说计网,因为我实习的时候看了很多计网相关的东西,他叫我把自己最熟悉的东西详细讲解出来 我讲了讲https的加密解密,对称加密和非对称加密,CA数字证书等,详细讲解了
  3. 使用https就能保证数据安全吗?
  4. http协议处于网络模型哪一层
  5. tcp和udp的本质区别是什么?这个地方在数据可靠性深挖的比较多 我有一种自己拿钻砸自己脚尖的感觉
  6. 实习过程中用http协议做的事情,http状态码解释
  7. http发起请求的时候,get,post别的还有些啥
  8. 用post获取数据会有什么问题吗?get和post的区别有哪些
  9. c和Java的区别,本质区别 我讲了面向对象和面向过程,他让我解释面向对象是什么 ,然后用通俗的方式讲解这两种不同思维方式(这个地方我回答了很多,但是很多都不是他想要的,他叫我冷静,最后给出了一个他还算满意的回答)
  10. 面向对象几大特征?什么时候该用继承什么时候不该用继承?有没有遇到过这种使用?为什么继承破坏了封装?
  11. 实际项目中运用过多线程吗?用来干什么?
  12. 多线程安全问题怎么解决?实际项目中怎么解决的,场景和解决方式
  13. 多线程协作方式,除了锁还有什么吗
  14. 信号量解释一下,干什么用的
  15. 死锁怎么产生的
  16. 发生了死锁怎么办?
  17. 银行家算法了解么
  18. 来了来了,他带着算法来了

第一个:有很多纸盒子,每个纸盒里里面套着纸盒子,其中有一个有硬币,怎么把硬币找出来,写算法

第二个:树的遍历方法有什么,写一个二叉树前序遍历算法

三面总监面

二面结束之后说不能告诉我结果,我以为凉了,因为第一面后面试官是直接让我等第二面,结果一个小时不到有hr联系我约第三面,约在第二天下午五点。等待的时候是很漫长的,好在我心态不错,尽人事听天命。

三面从五点到六点十五分,持续1小时10分钟,面试官是个痞帅痞帅的小哥哥,发型黄色烫染很潮很长,很年轻,不苟言笑,说话雷厉风行的干练。由于我在面到25分钟的时候,不知道怎么就摁到了录音结束,后面问的很多忘记了,只脑海中回忆起来的问题及时记录了下来

  1. 自我介绍一下
  2. 讲一件自己做项目最有挑战的一件事情
  3. 比较mysql和mongodb的优劣
  4. mysql用join来做连接,mongodb怎么做的
  5. mongodb冗余字段的方式和mysql有啥不同,缺点
  6. 信息变更了,name变了怎么处理这些冗余字段 他语速很快,但是说的很清楚,带着我的思考都快了起来,每次跟着我回答的东西挖下去
  7. mongodb里面的aggravate使用过吗,举一个例子,有什么用
  8. pipeline运行机制是什么,假如你来做mongdb执行引擎,自己设计一个方式来设计这个pipeline 这个问题回答了很久,因为mongodb回答总是不满意,他稍微满意了才放过我
  9. 你觉得docker这个技术能解决什么问题?为什么要用docker做部署?有什么好处
  10. 运行在docker里面的文件系统,docker怎么实现文件系统机制?
  11. 在docker里面根目录cd .. 能不能跳出沙箱回到宿主机?

这个地方有点滑铁卢,我猜测着回答出来隔离机制,软链接,但是具体的隔离机制我已经忘了

  1. 问了下我前端知识了解的程度?react 和 jquery有什么区别?
  2. 直接上算法了

第一个:寻找最近父节点,给了两个例子,差不多leetcode中等难度

第二个:开放性的问题,猫抓老鼠,猫在圆型中间,老鼠在圆的周长上,速度相同,问猫能不能抓到老鼠,这个问题我给的回答他不是很满意,我把关键点说到了但是不能用数学解释出来

总监面的内容都是我相对比较薄弱的地方,有了解使用但是还没有很深入,问了我有没有学过《编译原理》,我没学过。没等我问他最后自己告诉我他不能给我答案,最终结果他需要和其他两个面试官进行沟通才能决定,两到三天会有hr联系。总监主要考察的是我思考问题的方式,像猫抓老鼠的问题。

总结

三个面试官总共面了有4小时,把我灵魂都榨干了,从头虐到尾。有一个特别重要的经验就是,面到了知识盲区很正常,但每个问题不知道不要马上放弃,多想一想,有时候面试官会提点你,至少要把自己的思路说清楚,但是也不要胡说来忽悠面试官,要有理有据至少能自圆其说。

最终是没有过的,虽然没有过,也算是一个不错的经历,字节面试体验还是很好的,高效不高冷。大家一定要做好充分的准备,勇敢的去尝试,大胆的去投,愿你们都能有不错的前程!!

这里小编准备了几十套阿里、头条、腾讯和美团等公司2020年金三银四的面试题,把技术点整理成了视频+文档(总计20G,实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

这份资料尤其适合:

  1. 没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的。
  2. 具有一定工作经验的,但面对目前流行的技术不知从何下手,需要快速提升核心竞争力的人群。
  3. 在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以报名。
  4. 想了解“一线互联网公司”最新招聘需求/技术要求,对比找出自身的长处和弱点所在,评估自己在现有市场上的竞争力如何;
  5. 做了几年Java开发,但还没形成系统的Java知识体系,缺乏清晰的提升方向和学习路径的程序员。

相信它会给大家带来很多收获。(更全的内容和资料,在文末获取)

字节跳动三面四小时的灵魂拷问,结局我哭了但下次还敢
字节跳动三面四小时的灵魂拷问,结局我哭了但下次还敢
字节跳动三面四小时的灵魂拷问,结局我哭了但下次还敢
字节跳动三面四小时的灵魂拷问,结局我哭了但下次还敢

领取步骤

备注:

1892324-20200408173704995-149739833.png

你可能感兴趣的:(字节跳动三面四小时的灵魂拷问,结局我哭了但下次还敢)