在这个金三银四的面试季,想提高薪资最好的办法莫不过于跳槽了,本人也有这个想法。找工作不可能每次都能收获到offer,但是吸取别人的经验,你会更快的成功,收获到更多的offer,希望我的个人经历能够给更多的人带来收获...今天给大家分享一下快手的面试经历,文末也有我为了能够拿到offer准备的一些复习资料。
一面
1.自我介绍
2.ApplicationContext这个接口?有什么用?继承自什么接口?
3.springboot的启动流程?
4.三道代码题:
-
单例模式,要求线程安全、懒加载(我写的DLC的模式,基于这个又问了一下volatile和synchronized的原理和为什么在这里用)
-
把一个长度为 n 的数组分成 k 段,让每段和的最大值最小。(这道题思路跑偏了,面试官说复杂度太高)
-
每间隔m个元素反转一次链表(1-2-3-4-5-6,间隔2的反转:2-1-4-3-6-5)
PS:一面就三道编程题把我弄得有点蒙,面试小哥说时间不够了,我给你安排二面吧...
二面
0.自我介绍
1.做项目遇到的问题?
2.单线程改为多线程会产生什么问题?(因为我项目中使用了多线程优化和线程池)
3.线程池的参数?
4.线程池的内存溢出是什么情况?
5.阻塞队列介绍一下?加锁的情况?
6.写过关于信号量的东西吗?(面试官对我把阻塞队列中底层源码lock.newCondition作为锁表示怀疑,所以问出来了这个问题)
7.线程池的启动流程?
8.线程池的过期时间这个参数,指的是什么?线程池的过期时间到了之后,线程是如何被操作的?
9.OSI七层模型?
10.TCP和UDP的区别?
11.三次握手协议?
12.hashmap的原理?hashcode和equals的关系?hashcode相等,equals是否相等?
13.hashmap为什么是线程不安全的?
14.hashmap的尾部遍历?(没答上来)
15.数据库的优化过程?
16.explain的查看哪些字段?(答的不完整)
17.数据库为什么使用B+树而不是使用B树?
18.索引存储的位置?磁盘还是什么?
19.B+树的叶子有什么特点?为什么B+树适合范围查询?
20.什么是回表操作?如何避免索引的回表?
21.什么情况的会用到锁?介绍一下java中的锁?
22.synchronized的锁的底层实现?
23.锁升级理论?什么时候会转化为重量级锁?
24.算法题:给定数组,一个给定值,寻找数组中两个数字之和为指定值。(使用了暴力解法,面试问了一下优化方式,没答上了)
25.反问环节
PS:这个面试明显比上一个气场要强,问的问题比上一个面试官深,虽然基本上都答上了,但是面试官会对一些平时不太注意的细节加以询问。整体的流程比较严肃。
HR面
正在腾讯的笔试,打来了电话,说询问一下情况。。。
1.实习经历
2.实习项目
3.项目的解决思路
4.在实习公司如何学习
5.对应聘部门的了解
6.反问
复习资料(点击此处获取文档完整版)
2021Java核心知识点
1000道互联网工程师面试真题
书籍资料
大厂面试真题