字节跳动|普通本科毕业,海投简历三面字节跳动,侥幸拿到offer


字节跳动|普通本科毕业,海投简历三面字节跳动,侥幸拿到offer
文章图片
字节跳动|普通本科毕业,海投简历三面字节跳动,侥幸拿到offer
文章图片
字节跳动|普通本科毕业,海投简历三面字节跳动,侥幸拿到offer
文章图片
背景本人是普通本科 , 无科研经历 , 但是有一些项目经历 , 在国内监控行业某头部企业做过一段时间的实习 。 想着投一下字节跳动 , 可以积累一下面试经验和为秋招做准备 。 投了简历之后过了一段时间 , HR 就打电话跟我约时间 , 在月初进行远程面 。
一面面试官很和蔼 , 由于疫情的原因 , 大家都在家里面进行远程面试 。
开头没有自我介绍直接开始问项目了 , 问了比如

  • 常用的 Web 组件有哪些(回答了自己经常用到的 SpringBoot , Redis , Mysql 等等 , 字节这边基本没有用 Java 的后台 , 所以感觉面试官不大会问 Spring , Java 这些东西 , 反倒是对数据库和中间件比较感兴趣)
  • Kafka 相关 , 如何保证不会重复消费 , Kafka 消费组结构等等(这个只是凭着感觉和面试官说了 , 因为 Kafka 自己确实准备得不充分但是心态稳住了)
  • Mysql 索引B+树(必考的同学们)
还有一些项目中的细节 , 这些因人而异 , 就不放上来 , 提示一点就是要在项目中介绍一些亮眼的地方比如用了什么牛逼的数据结构 , 架构上有什么特点 , 并发量大小还有怎么去 hold 住并发量
后面就是算法题了一共做了两道
  1. 判断平衡二叉树(这道题总体来说并不难 , 但是面试官在中间穿插了垃圾回收的知识 , 这就很难受了 , 具体的就是大家要判断一下对象在什么时候会回收 , 可达性分析什么时候对这个对象来说是不可达的 , 还有在递归函数中内存如何变化 , 这个是让我们来对这个函数进行执行过程的建模 , 只看栈帧大小变化的话 , 应该有是两个峰值 , 中间会有抖动的情况)
  2. 二分查找法的变种题 , 给定target和一个升序的数组 , 寻找下一个比数组大的数 。 这道题也不难靠大家对二分查找法的熟悉程度 , 当然 , 这边还有一个优化的点 , 可以看看我的博客找找灵感
完成了之后 , 面试官让我等一会有二面 , 大概 10 分钟左右吧 , 休息了一会就继续了
二面二面一上来就是先让我自我介绍 , 当然还是同样的套路 , 同样的香脆
然后问了我一些关于 Redis 的问题 , 比如 zset 的实现(跳表这个高频)  , 键的过期策略 , 持久化等等 , 这些在大多数 Redis 的介绍中都可以找到 , 就不细说了
还有一些数据结构的问题 , 比如说问了哈希表是什么 , 给面试官详细说了一下java.util.HashMap是怎么实现(当然里面就穿插着红黑树了 , 多看看红黑树是有什么特点之类的)的 , 包括说为什么要用链地址法来避免冲突 , 探测法有哪些 , 链地址法和探测法的优劣对比
后面还跟我讨论了很久的项目 , 所以说大家的项目一定要做好 , 要有亮点的地方 , 在这里跟面试官讨论了很多项目优化的地方 , 还有什么不足 , 还有什么地方可以新增功能等等 , 同样不细说了
【字节跳动|普通本科毕业,海投简历三面字节跳动,侥幸拿到offer】一边讨论的时候噼里啪啦敲了很多 , 应该是对个人的面试评价一类的
后面就是字节的传统艺能手撕算法了 , 一共做了三道