我准备了一个月,怒刷面试题,4面字节跳动,顺利拿到 offer
Posted 温不了情
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我准备了一个月,怒刷面试题,4面字节跳动,顺利拿到 offer相关的知识,希望对你有一定的参考价值。
说到字节跳动的经历还是比较搞笑的。一开始我特别想去那个游戏部门,当然 data 部门也是特别想去的,但是提前批只能投一个,于是投了游戏,结果第二天就给我挂了。。。中间北京的教育捞我,但是不想去北京所以拒绝了,上海的测试捞我,我也不太懂测试所以还是拒绝了。正式批的时候我投了俩,游戏部门和 data,结果游戏第二天又给我挂了。。。哈卖批。。。过了几天 data 也给我挂了!我想真的是跟字节命里犯冲。。。这时候阿里学长看我阿里面试最后一轮表现不太好,想给我托字节内部捞一下去教育,结果这时候 data 主动把我捞了!!!真是神奇的操作啊。。。以致于我一直觉得字节这是在嫖我啊,这摆明了拿我刷 kpi 啊!这我能答应吗?。。。我答应了。。。事实证明,是我小人之心度君子之腹,我错了!orz!在文末分享了我为金九银十准备的备战资源库,包含了源码笔记类,大厂面试真题,跳槽解析,简历解析,项目实战源码+笔记+工具,有需要的小伙伴点赞下就可以免费领取哈~~
一面
正式批(别看了都是正式批,提前批就没让我面!)一面。面试时间 08-18,19:53 - 21:08,全程 1 个小时 15 分钟。涉及内容:项目、网络、数据库、算法题
1. 自我介绍
2. 项目中的有挑战的点(问了大概有五六个问题)
3. 问了下本科啥专业的,学过哪些课程(主要是为了下面面试问题的内容,我说了操作系统和计算机网络学的时间久了,结果就挑着问 hhh,佛了)
4. 你知道 DNS 协议嘛?描述一下从输入域名到显示的过程(从 DNS 解析到 HTTP 链接建立到内容返回浏览器渲染)
5. 你刚提到了递归查询和迭代查询,具体说一说什么样子的?(上面说到 DNS 获取域名对应的 ip 过程分为两个过程,即递归和迭代)
6. 本地域名服务器向根服务器查询的是什么?(这边没答好,我说的是下一级的域名服务器的 IP 地址,经过引导理解了,是要从输入的域名检验跟服务器中对应的域名服务器的 IP 地址)
7. TCP 的三次握手,详细描述一下,最好包括他的一些状态(说到了 SYN、ACK 以及确认序号和起始序号,但是面试官说第二次握手的时候不需要 SYN 的标志,但是书上是这么说的,让我再看看,我也不太好反驳。。。)
8. DNS 用的 TCP 还是 UDP?为什么用 UDP?(就是 UDP 的好处,从握手效率、报文的长度来说)
9. TCP 和 UDP 的各自的应用,举例子
10. TCP 的四次挥手(仍然要说标志位和序号)
11. 2 个 MSL 指的是什么?为什么要 2 个?(确保服务端收到,以及防止端口重用时网络中仍然有残余报文段导致错乱)MSL 指的是什么?(包生存时间)
12. 学过数据库吗?ACID 是指什么?(事物的四大属性)隔离级别?解决的问题?(脏读、不可重复度、幻读)这三个现象解释一下?
13. mysql 默认的隔离级别是什么?在 Innodb 的可重复读的情况下可以解决幻读的情况吗?(我回答不能,其实应该是不能完全解决,可以一定程度的避免,可以从 next-key lock 的原理想)
14. 知道聚簇索引和非聚簇索引吗?(底层,B+ 树的叶子节点区别)非聚簇索引查询的话会做几次查询?(一次)非聚簇索引存的是什么东西?(叶子节点存的是键值和数据所在物理地址)
一面总结:比较基础,面试相当友好,没有问奇奇怪怪的问题,太幸运了
二面
正式批二面。面试时间 08-20, 14:00 - 14:45,全程 45 分钟。涉及内容:java 基础、锁、内存分配、算法
1. 自我介绍
2. Java 的继承介绍一下?多态指什么?(由于面试官没用过 java,所以只问了点基础的)
3. 重载和重写?方法签名?
4. 类的加载机制(加载、验证、准备、解析、初始化,每部分做了什么)
5. Java 里面 Map 的类型(提了 HashMap、ConcurrentHashMap、LinkedHashMap、TreeMap)有什么区别?(提了最常说的两个 map 的区别)
6. CAS 是什么呢?(前面 ConcurrentHashMap 提了)
7. 什么是乐观锁什么是悲观锁?(CAS 里提了)
8. 还有什么说么?(从乐观、悲观锁到读写锁到互斥锁共享锁到 CLH 锁 MSC 锁自旋锁偏向锁公平锁和非公平锁可重入锁,脑壳疼,这锁太多了一下子记不起来全部,数据库里面还有老多了)
9. 线程间的同步方式?(共享变量、wait/notify、condition 的 await/signal、父子线程可以通过 InhritableThreadLocal、消息队列)
10. 什么是死锁?怎么避免?(条件和破坏条件)
11. 线程和进程有什么区别?
12. Java 里面怎么分配内存?(讲了一下从栈到堆中的内存分配)
13. 堆满是什么概念?(总算扯到垃圾回收了,从 minor gc -> full gc 到新生代和老年代的占比)
14. 虚拟内存和物理内存有什么区别?空间置换?
15. 写道题吧。接雨水
16. 反问
二面总结:本来以为是会问项目,没想到还是基础方面的。不过由于面试官不用 Java,所以一些问题他会深入问而不是看你明白就停了,所以得很了解才行。总的来说没出大问题,
三面
正式批三面。面试时间 08-20,15:00 - 15:30,全程 30 分钟。涉及内容:项目、网络、基础、个人规划
1. 自我介绍
2. 问了问项目
3. 一致性哈希的均衡性?(前面项目里用到了一致性 hash)虚拟节点是指什么?
4. Mysql 的高可用方案?(讲了一下我们自己用的,以及一些市面上的方案)
5. ELK 用来干什么?数据量大了怎么优化?
6. http 协议各个版本的区别?演进的逻辑?
7. TCP 的一些拥塞控制算法了解多少?
8. 怎么确定数据包丢了?(冗余 ack)ACK 会不会丢掉呢?
9. Java 的内存调优?
10. 内存 gc?(到了最熟的部分,松了一口气)
11. 对未来的一些工作有没有一些规划?从哪块入手?
12. 反问
三面总结:项目问了一些,基础也问了,总的感觉字节还是偏基础一点。
hr 面
其实也不算 hr 面了,主要就是了解一下情况然后就发了意向书,中间审批过程比较长,等了很久生怕跪了。。。问题的话没什么好说的,基本就是意向地点,投了哪些公司和部门,现在手头上有什么 offer,有什么计划,毕业时间,哪里人等等。电话还没打完就发意向书过来了,感觉有点兴奋,但是强忍住不表现出来。。。
总的总结
楼主投的是杭州的 data 不过,面试流程还是很快的,从 16 号笔试结束到 23 号四面结束,一共一个礼拜,然后加上 offer 审批一个礼拜多一点,半个月走完全部流程收到了意向书。面试经历可以看出字节其实对项目不是很看重,更多的是对基础的掌握和深入,所以建议大家认真复习,知识点不要看过算过(中间好多点不是很熟悉,靠引导才回忆起来,所以感觉评价会差很多 orz)。总的来说感觉 data 还是比较缺人的,并没有为难我,问题也都很基础。
最后希望大家都能收获自己满意的 offer!!!
菜就要查漏补缺,不知道自己菜的人才最可怕,这次金九银十我已经跃跃欲试了在家也没少准备,下面分享下我的金九银十备战资源库,有需要的可以直接点赞本文后,扫码即可获取!!
字节面试场景以及面试答案(文档总结)
知其然不知其所以然,大厂常问面试技术如何复习?
1、热门面试题及答案大全
面试前做足功夫,让你面试成功率提升一截,这里一份热门350道一线互联网常问面试题及答案助你拿offer
2、多线程、高并发、缓存入门到实战项目pdf书籍
3、文中提到面试题答案整理
4、Java核心知识面试宝典
覆盖了JVM 、JAVA集合、JAVA多线程并发、JAVA基础、Spring原理、微服务、Netty与RPC、网络、日志、Zookeeper、Kafka、RabbitMQ、Hbase、MongoDB 、Cassandra、设计模式、负载均衡、数据库、一致性算法 、JAVA算法、数据结构、算法、分布式缓存、Hadoop、Spark、Storm的大量技术点且讲解的非常深入
免费分享给大家的 pdf 太多了,这里面有 pdf 有 Word 的格式,这些资料里面的内容我面试的时候大部分都有涉及,现在免费分享给大家,希望对大家有帮助!
以上是关于我准备了一个月,怒刷面试题,4面字节跳动,顺利拿到 offer的主要内容,如果未能解决你的问题,请参考以下文章
BTAJ面试有关散列(哈希)表的面试题详解,2年以上经验必看