美文网首页
成功入职字节,25K小哥甩出详细面试总结,不信你还参透不了重点

成功入职字节,25K小哥甩出详细面试总结,不信你还参透不了重点

作者: 是阿胖胖吖 | 来源:发表于2020-10-23 10:52 被阅读0次

    前言

    本⼈是底层 211 本科,刚毕业,⽆科研经历,但是有⼀些项⽬经历。

    在国内监控⾏业某头部企业做过⼀段时间的实习。

    想着投⼀下字节,可以积累⼀下⾯试经验和为金九银十面招做准备。投了简历之后,过了⼀段时

    间,HR 就打电话跟我约时间,

    说明⼀下,我投的是北京 office。

    以下就是一个面试的全部过程,分享出来给感兴趣的朋友们一看。

    一面

    ⾯试官很和蔼,开头一个⾃我介绍,就直接开始问项⽬了,⽐如:

    (回答了⾃⼰经常⽤到的 SpringBoot,Redis,Mysql 等等,字节这边基本

    没有⽤ Java 的后台,所以感觉⾯试官不⼤会问 Spring,Java 这些东⻄,反倒是对数据库和中间

    1.常⽤的 Web 组件有哪些?

    件⽐᫾感兴趣)

    2.Kafka 相关,

    如何保证不会重复消费,

    Kafka 消费组结构等等(这个只是凭着感觉和⾯试官说了,因 为 Kafka ⾃⼰确实准备得不充分,但是⼼态稳住了)

    3.Mysql 索引,B+树(必考嗷同学们!!!)

    还有⼀些项⽬中的细节,这些因⼈⽽异,就不放上来了。

    提示⼀点就是要在项⽬中介绍⼀些亮眼的地⽅,⽐

    如⽤了什么⽜逼的数据结构,架构上有什么特点,并发量⼤⼩还有怎么去 hold 住并发量!

    后⾯就是算法题了,⼀共做了两道

    1. 判断平衡⼆叉树

    这道题总体来说并不难,但是⾯试官在中间穿插了垃圾回收的知识,这就很难受

    了,具体的就是⼤家要判断⼀下对象在什么时候会回收,可达性分析什么时候对这个对象来说是不

    可达的,还有在递归函数中内存如何变化,这个是让我们来对这个函数进⾏执⾏过程的建模,只看

    栈帧⼤⼩变化的话,应该有是两个峰值,中间会有抖动的情况)

    2. ⼆分查找法的变种题

    给定 target 和⼀个升序的数组,寻找下⼀个⽐数组⼤的数.这道题也不难,

    靠⼤家对⼆分查找法的熟悉程度,当然,这边还有⼀个优化的点,可以看看我的博客找找灵感

    完成了之后。

    ⾯试官让我等⼀会有⼆⾯,⼤概 10 分钟左右吧,休息了⼀会就继续了

    二面

    ⼆⾯⼀上来就是先让我⾃我介绍,当然还是同样的套路,同样的⾹脆

    然后问了我⼀些关于Redis的问题,

    ⽐如 zset 的实现(跳表,这个⾼频) ,键的过期策略,持久化等等,

    这些在⼤多数 Redis 的介绍中都可以找到,就不细说了!

    还有⼀些数据结构的问题:

    1.⽐如说问了哈希表是什么,给⾯试官详细说了⼀下 java.util.HashMap 是

    怎么实现(当然⾥⾯就穿插着红⿊树了,多看看红⿊树是有什么特点之类的)的

    2.包括说为什么要⽤链地址法来避免冲突、探测法有哪些?

    3.链地址法和探测法的优劣对⽐

    后⾯还跟我讨论了很久的项⽬,所以说⼤家的项⽬⼀定要做好,要有亮点的地⽅,在这⾥跟⾯试官讨论了

    很多项⽬优化的地⽅,还有什么不⾜,还有什么地⽅可以新增功能等等。

    同样不细说了

    ⼀边讨论的时候劈⾥啪啦敲了很多,应该是对个⼈的⾯试评价⼀类的

    后⾯就是字节的传统艺能⼿撕算法了,⼀共做了三道

    ⼀⼆道是连在⼀起的.给定⼀个规则 S_0 = {1} S_1={1,2,1} S_2 = {1,2,1,3,1,2,1}

    S_n = {S_n-1 , n + 1, S_n-1} .

    1.第⼀个问题是他们的个数有什么关系(1 3 7 15... 2 的

    n 次⽅-1,⽤位运算解决).

    2.第⼆个问题是给定数组个数下标 n 和索引 k,让我们求出 S_n(k)所指

    的数,假如 S_2(2) = 1 ,我在做的时候没有什么好的思路,如果有的话⼤家可以分享⼀下

    3,第三道是下⼀个排列:https://leetcode-cn.com/problems/next-permutation 的题型,不过做

    了⼀些修改,数组⼤⼩ 10000

    HR面

    ⼀些偏职业规划的话题了,实习时间,项⽬经历,实习经历这些。

    总结

    基础很重要!

    这次准备到的 Redis,Mysql,JVM 原理等等都有问到了,(⽹络这⼀块没问,但是也是要好好

    准备的,对于后台来说,⽹络知识不仅仅是⾯试,还是以后⼯作的知识基础)。

    当然⾃⼰也有准备不⾜的地⽅:

    ⽐如 Kafka 等中间件,只会⽤不会原理是万万不⾏的.并且这些基础知识不能只靠背,⾯试官还会融

    合在项⽬⾥⾯进⾏串问

    其次,问到了不会的不要慌,因为⾯试官是在试探你的技术深度,有可能会针对某⼀个问题,问到你不会为⽌,所以你出现不会的问题是很正常的,⼼态把控住就⾏.

    ⽆论是做题,还是回答问题的时候,牢记你不是在考试,⽽是在交流,和⾯试官有互动和沟通是很重要的,

    你说的⼀些疏漏的地⽅,如果你及时跟⾯试官反馈,还是可以补救⼀下的。

    最重要的⼀点字节的⾯试就是算法⼀定要牢固,每⼀轮都会有⼿撕算法的!

    这个不⽤想,LeetCode+剑指Offer ⾛起来就对了。

    ⼼态很重要,算法题不⼀定都是你会的,要有⼀定的⼼理准备,遇到难题可以先冷静分析⼀波。

    ⽽且写出 Bug free 的代码也是很重要的。

    最后祝⼤家在金九银十之际取得自己心仪的 Offer,奥⼒给!

    以上分享的是我自己2020年面试字节的一个经历,

    获取点我​

    在此面试前我整理归纳了一些面试学习资料,文中结合我的朋友同学面试美团滴滴这类大厂前的资料及案例

    算法

    ⼏道常⻅的字符串算法题总结

    最⻓公共前缀

    回⽂串

    两数相加

    翻转链表

    链表中倒数第k个节点

    删除链表的倒数第N个节点

    合并两个排序的链表

    剑指offer部分编程题

    跳台阶问题

    变态跳台阶问题

    ⼆维数组查找

    替换空格题⽬描述:

    数值的整数次⽅

    调整数组顺序使奇数位于偶数前⾯

    链表中倒数第k个节点

    反转链表

    合并两个排序的链表

    ⽤两个栈实现队列

    栈的压⼊,弹出序列

    获取点我​

    数据结构

    Java 集合框架中的队列 Queue

    HashSet 和 TreeSet 底层数据结构

    List的常⻅实现类ArrayList 和 LinkedList 源码学习

    Map

    ⼆叉树

    完全⼆叉树

    满⼆叉树

    ⼆叉查找树(BST)

    平衡⼆叉树(Self-balancing binary search tree)

    红⿊树

    B-,B+,B*树

    LSM 树

    Redis

    为什么要⽤ redis/为什么要⽤缓存

    为什么要⽤ redis ⽽不⽤ map/guava 做缓存?

    redis 的线程模型

    redis 和 memcached 的区别

    redis 常⻅数据结构以及使⽤场景分析

    redis 设置过期时间

    redis 内存淘汰机制(MySQL⾥有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?)

    redis 持久化机制(怎么保证 redis 挂掉之后再重启数据可以进⾏恢复)

    redis 事务

    缓存雪崩和缓存穿透问题解决⽅案

    如何解决 Redis 的并发竞争 Key 问题

    如何保证缓存与数据库双写时的数据⼀致性?

    MyBatis

    {}和${}的区别是什么?

    Xml 映射⽂件中,除了常⻅的 select|insert|updae|delete 标签之外,还有哪些标签?

    最佳实践中,通常⼀个 Xml 映射⽂件,都会写⼀个 Dao 接⼝与之对应,请问,这个Dao接⼝的⼯作原理是什么?Dao接⼝⾥的⽅法,参数不同时,⽅法能重载吗?

    Mybatis 是如何进⾏分⻚的?分⻚插件的原理是什么?

    简述 Mybatis 的插件运⾏原理,以及如何编写⼀个插件。

    Mybatis 执⾏批量插⼊,能返回数据库主键列表吗?

    Mybatis 动态 sql 是做什么的?都有哪些动态 sql?能简述⼀下动态 sql 的执⾏原理不?

    Mybatis 是如何将 sql 执⾏结果封装为⽬标对象并返回的?都有哪些映射形式?

    Mybatis 能执⾏⼀对⼀、⼀对多的关联查询吗?都有哪些实现⽅式,以及它们之间的区别。

    Mybatis 是否⽀持延迟加载?如果⽀持,它的实现原理是什么?

    Mybatis 的 Xml 映射⽂件中,不同的 Xml 映射⽂件,id 是否可以重复?

    Mybatis 中如何执⾏批处理?

    Mybatis 都有哪些 Executor 执⾏器?它们之间的区别是什么?

    Mybatis 中如何指定使⽤哪⼀种 Executor 执⾏器?

    Mybatis 是否可以映射 Enum 枚举类?

    Mybatis 映射⽂件中,如果 A 标签通过 include 引⽤了 B 标签的内容,请问,B 标签能否定义在 A 标签的后⾯,还是说必须定义在 A 标签的前⾯?

    简述 Mybatis 的 Xml 映射⽂件和 Mybatis 内部数据结构之间的映射关系?

    为什么说 Mybatis 是半⾃动 ORM 映射⼯具?它与全⾃动的区别在哪⾥?

    MyBatis答案解析

    由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!​获取点我​

    相关文章

      网友评论

          本文标题:成功入职字节,25K小哥甩出详细面试总结,不信你还参透不了重点

          本文链接:https://www.haomeiwen.com/subject/katvmktx.html