半年备战六面字节,成功收获抖音offer才发现算法尤为重要

字节面了六次,面经自己有做笔记,反馈一下大家。

半年备战六面字节,成功收获抖音offer才发现算法尤为重要

字节跳动

一面(60min):7.8号

操作系统部分:1.进程与线程的区别2.进程通信,有几种方式?举例说说3.死锁条件和如何避免,说具体操作,银行家算法4.虚拟地址,逻辑地址,物理地址的关系网络部分:1.http和https,SSL?加密解密?2.TCP为什么是三次握手?time_wait?3.交换机和路由器的区别,具体一点?广播风暴?4.IP头都有什么?详细一点?源地址和目标地址是MAC吗?5.乱七八糟各种小点和细节,挺多的,可能因为我是网络工程的,所以网络真的问了很多,很细,差点栽了。。。并发部分:1.JMM2.volatile3.synchronized相关的(比如:锁静态方法时,锁的其实是Class对象等等这些点)JVM部分:1.类加载机制2.堆(比如:堆存储的都是什么?xxx也在堆里吗?GC?)3.栈(栈存储什么啊?和堆的区别呢?)数据库:1.游标2.范式(第三范式是什么?)3.事务隔离(ACID各部分说一下)还有一些乱七八糟的题记不住了。算法:leetcode:有效的括号(迅速用栈就解决了)二面(60min):7.14

数据库:

1.mysql的索引结构2.主键索引和组合索引3.为什么是B+树,和B树比较?4.sql语句的优化过程,了解过哪些 举个例子网络1.http1.0,http1.1,http2.0java1.常见的垃圾处理器及算法2.说说G13.说说ConcurrentHashMapredis1.redis的一致性及解决思路?2.redis的数据类型3.redis的string底层是如何存储的4.zset数据结构?(跳表)那跳表是用什么判断每隔几个选一个呢?(随机算法)5.分布式锁相关(redis和zookeeper)spring1.aop和ioc的原理2.ioc容器(具体我没懂问的啥,就不管三七二十一就把ioc的流程大体说了一遍)算法1.判断回文链表三面:负责人面:7.20号

三面是总负责人面,就比较发散性的问了问一些,问我哪门课学得好,我说计网,然后就问了计网。

如何理解计算机网络是什么东西?

输入一个域名的访问过程?

TCP?

DNS?

如果网没反应,那都有什么可能性?

如果是电脑网络故障,那么输入一个域名的访问过程又是什么样子?

.....

.....

整体来说就发散思维的问了好多。。。

HR面(30min):三面之后立马HR面了

老问题了,大学生活?最难的时候?人生规划?了解我们部门吗?期望薪资?还有什么offer?

---

本来leetcode刷了几百道题等着来迎战字节,结果算法题没刁难我,问了好多基础和一些发散性的题,总体感觉面试过程还不错。

西瓜视频客户端 一面(7.20 59min)

  1. 自我介绍
  2. HTTP,TCP,为啥挥手比握手多一次
  3. 进程与线程的区别,进程间通信
  4. Activity的生命周期(有点迷,onStart之后Activity可见但不可交互,面试官觉得这句话有问题,可能是我理解错了???)
  5. HashMap底层
  6. 快速排序,堆排序,堆
  7. 算法题:两个单链表的第一个相交节点(表达能力出错了,没有讲清楚,最后就干脆让我直接写代码了,幸好代码没出问题)

我是真没想到这题我会讲不清楚。

西瓜视频客户端 二面(7.21 53min)

面试官水平很高,人也超级nice,我答不出来的时候会给很多提示,虽然有些我问题还是没答上。。。

  1. 学过java吗?学过安卓吗?操作系统,数据库什么的学过吧?
  2. 写个单例吧(速成的设计模式,出了问题没改出来)
  3. 了解过线程池吗?为什么要用线程池?(速成的,底层不太懂,追问底层就没答出来)
  4. Android四大组件?Activity启动模式?SingleTop模式下,如果启动一个和栈顶相同的Activity,这个Activity会收到什么回调?
  5. 写Android或java的时候遇到过OOM吗?
  6. 死锁的形成?怎么避免死锁?
  7. 有写过自定义View么?
  8. 算法题:二叉树中序遍历,要求非递归(整一个stack然后模拟就完事了)
  9. 有什么问题要问吗(问了评价,面试官觉得我学过一个学期的java和android,写单例的时候不应该出这么多错误,不应该不会改。内心OS:?????我为什么要问这个问题?)

7.22

hr打电话告知昨天面试凉了,但是抖音客户端捞了一手,约了30号面试。

抖音客户端 一面(7.30 16:00 40min)

  1. 自我介绍
  2. 问了项目(其实就是个大作业,有点紧张,很多东西没记起来)
  3. Service,Service的两种启动方式
  4. Activity生命周期,点了home键之后再返回app,Activity的生命周期变化
  5. BrocastReceiver,BrocastReveiver两种注册方式,ContentProvider
  6. HTTP,请求头,请求方法的区别
  7. 浏览器输入url之后按回车之后的过程,过程中用了什么协议,域名解析具体过程
  8. finalize,在什么时候使用
  9. 类加载过程
  10. 算法题:给一个单词列表,起始单词和目标单词,从起始单词开始,每次只能修改1个字符,并且修改后的单词也要在单词列表里,问从起始单词到目标单词的最短转移过程。(把图论模型建出来,然后手写了个堆优化的dijkstra+记录路径,挺久没写这个了,手有点生,幸好没出问题)
  11. 反问环节

抖音客户端 二面(7.30 17:00 60min)

  1. 自我介绍
  2. 问了项目
  3. 如何启动一个Activity,如何在Activity间传递消息,如何处理startActivityForResult如何处理返回的消息
  4. 自己写过xml吗?(面试官说的叉ml,一开始没听清说了没有,然后面试官说了就是View和Layout之类的,然后我才听懂。。。)
  5. 用过什么layout,LinearLayout和FrameLayout的区别
  6. Service的生命周期
  7. DNS,具体过程
  8. 线程,为什么要用线程?单核处理器上用线程有什么作用?具体怎么运作?
  9. 问了另一个项目。具体做了什么工作?作为组长做了什么?过程中遇到了什么问题?
  10. 为什么打算法竞赛?过程中最大的收获?
  11. 职业规划?(并没有,但是每年会设置一些小目标)
  12. 算法题:二叉树最小深度(递归,然后面试官提示了下又加了剪枝)
  13. 堆栈,给了一些情况判断变量存在堆里还是栈里
  14. 指针和引用的区别
  15. GC,为什么要用GC,发生在什么区
  16. 接口和抽象类
  17. 之前的比赛没打好,有进行总结吗
  18. 设计模式,写个单例吧(写了DCL),为什么要判断两次
  19. 控件上的数据突然不显示了怎么办?我给第三方接口发请求没收到回复怎么办?
  20. 反问环节(问了评价,说我java和c++基础还要再多看看,算法是我的优势但是客户端开发不会用到太多的算法)

7.30

下午面完,去吃了个晚饭,回来就收到了offer。努力还是有收获的。

总结

总的来说体验还是不错的。

问的问题基本都能回答出东西,但是经常是只答出了一部分,并不完整,这个是我需要改进的地方。把我自己一直刷的题拿出来,大家一起学习,你们有好的也可以分享给我,一起学习一起提升嘛~

半年备战六面字节,成功收获抖音offer才发现算法尤为重要

半年备战六面字节,成功收获抖音offer才发现算法尤为重要

半年备战六面字节,成功收获抖音offer才发现算法尤为重要

资料全部真实有效,不会缺页,不会只是大纲!!!由于文章篇幅有限,为了不耽误大家宝贵的时间,这份PDF小编已经为大家整理好了,需要免费领取的朋友麻烦帮忙转发、转发、转发这篇文章(一定要转发哦),然后私信小编【面试】。

猜你喜欢

转载自blog.csdn.net/mrchaochao/article/details/107716490
今日推荐