人人都想进大厂,当然我也不例外。早在春招的时候我就有向某某某大厂投岗了不少简历,可惜了,疫情期间都是远程面试,加上那时自身也有问题,导致屡投屡败。突然也意识到自己肚子里没啥货,问个啥都是卡卡卡卡,后期下定决心好好弥补我的知识与智商,天天扎在书堆里,再加上实操,自我感觉还是不错的,有进步。
尤其是这我啃了足足58天的[Java进阶核心知识集](文末有分享),还是当初朋友面试进大厂后分享给我的。摸熟里边近30个分类的Java知识后,7月下旬鼓足勇气向抖音后端进击,123面(视频面)下来就像开挂了(幸运)。完事之后整理了一下抖音3面面经,我想大家可以参考看看。
抖音后端一面(7.22)(47分钟)
1. 自我介绍还没完屏幕就黑了。。重连后直接问问题。。
2. hashmap底层实现
3. java线程池参数,以及具体使用流程
4. mysql底层为什么不用b树,b*树,而用b+树。
5. 写了个sql语句(很简单的联表查询)
6. sql语句中,表逗号表,sql会如何优化
7. 连接时mysql底层是怎么做的
8. 记性不太好,忘了很多题...
9. 算法题:
(1)经典[1,2,2,2,3]找出数组中超过一半的元素
(2)给定正整数n,问1-n组成的二叉搜索树有多少
抖音二面(7.23)(60分钟)
1. tcp三次握手
2. 两次为什么不行(这题经典,但是没有组织过语言又紧张,导致答得稍微有点乱)
3. java synchronized关键字的理解
4. 介绍一下AQS
5. 获取不到锁时,AQS阻塞的具体流程
6. redis的基本数据结构
7. 热点数据
8. zset底层如何实现
9. zset取单个数据的时间复杂度
10. 跳跃表的原理
11. 消息队列
12. mysql 索引最左前缀匹配
13. 有些题忘记了...
14. 算法题:
(1)二叉树的左视图
(2)面值[1,3,4]的硬币,输入n,输出最少组成n的硬币个数以及组成的硬币
抖音后端三面(7.27)(85分钟)
三面面试官看起来比较严肃,先看了看简历,开始问项目。
问到mysql索引最左前缀(信誓旦旦的说我的理解,后来发现自己好像偏离了,吐血)
1. 两个二叉树的合并(上来就直接说层序遍历)
2. 设计题,设计一个类(开始没有get面试官的点,不过幸好面试官提示了一下)
3. 智力题,100个硬币,30正,70反。问:分成两堆(随意分),把其中一堆全翻过来,两堆硬币朝上个数相等,问怎么分。
总体感觉,一二面比较舒适,三面卡壳了一下(个人觉得不是很理想),所以个人觉得基础很重要,要好好打磨,然后进阶部分理论加实践一起,可以事半功倍。在面完两天之后HR就通知我过了。。一下子就沸腾了。。哈哈哈。。那么说到这里可能有很多小伙伴比较好奇我在文章开头说的啃了足足58天的[Java进阶核心知识集]到底是何方神圣,好吧,给你看看(笔记好东西要大家一起看才香),若是觉得不错,小编也能给你免费分享
Java进阶核心知识集
内容过多,有近30个专题的Java核心知识集,不多说,来一份超长目录,眼见为实。
关于算法
字节必备算法,所以对于算法这一块,咱们还是得往死里刷刷刷,最好的是刷《算法刷题LeetCode中文版》以及左程云大神的《程序员代码面试指南 IT名企算法与数据结构题目最优解(近200道)》
- 先看我手上的《算法刷题LeetCode中文版》
内容包含:线性表、字符串、栈和队列、树、排序、查找、暴力枚举法、广度优先搜索、深度优先搜索、分治法、贪心法、动态规划、图
算法刷题LeetCode中文版
- 左程云大神的《程序员代码面试指南 IT名企算法与数据结构题目最优解(近200道)》
题目如下,完整的答案解析(有源代码)有需要的小伙伴皆可免费分享
PS:可以挑战一下自我,在不看答案解析(附源码)的情况,试试自己能否搞定
想要获取完整的有源代码的答案解析+**LeetCode中文版+[Java进阶核心知识集]等等