快手一二面面经Java,AI中台
一面的内容倒是记得不太多了,主要是:
1. 写一个单例模式
2. 写一个青蛙跳
3. 问了jvm
4. hashmap和correctHashMap
5. 问了一下项目,异步之类的
6. 问了一下线程池和线程池底层的关键参数
7. 问了一下netty的底层
8. 问了一下tomcat的底层
9. 问了一下redis的底层,为什么快,什么时候单线程会不好
10. 问了一下redis的常见数据结构和底层实现,以及应用场景(做排行榜,存对象,共同好友交并集查询之类的)
11. 问了一下redis实现分布式锁
12. spring的事务怎么实现的
13. spring的Aop和Ioc
二面
1. 问了一下redis的常见数据结构和底层实现,以及应用场景(做排行榜,存对象,共同好友交并集查询之类的)
2. 问了一下项目
3. 问了一下ArrayList有没有线程安全的模式,怎么实现
答:使用synchronized关键字,这个大家应该都很熟悉了,不解释了;或者使用Collections.synchronizedList();
4. 问了一下反转链表的实现
5. 方法的重写和重载,和返回值有没有关系?
6. 泛型的理解和作用,怎么实现的?
7. list<Interge>和list<String>有什么差别?
8. 问了一下项目
9. 问了一下数据库的引擎
10. 问了一下场景题目,项目中的数据库表是怎么设置的,索引怎么弄的,你是怎么优化查询速度的?
11.数据库的事物性和它的实现原理
答:持久,一致,原子,可见。事物性是为了解决:脏读,幻读,不可重复读的。实现方案有:三重锁隔离级别和MVVC快照读。并且指出了快照读不能够解决幻读问题,要结合锁。
12. 问了一下spring的Aop和Ioc
13. 问了跨域的解决,以及为什么会有跨域问题,是不是所有的请求不会存在跨域问题。
答:当问我是不是所有请求都有跨域的时候,我说:您都这么问了,肯定不是所有都有跨域啦。然后面试官和我一起笑了。哈哈,答案是get之类的简单请求是没有跨域问题的。没回答上来其实
二面聊了一个多小时,问了还有挺多的,不过忘的差不多了,记得比较清楚的就是这些了。然后就是,快手出乎意料,不太问项目的东西,我介绍我实习的东西,还有学校开发的上线项目,他也兴趣不大的样子。
#面经##快手##校招##Java工程师#