快手社招一二面面经

一面

1.自我介绍
2.简单介绍一下自己最近做的项目
3.针对简历上有的技术以及项目进行提问

具体问题:
1.我看你简历里面说做过mysql的优化,说说你都做过哪些优化或者优化的思路?
2.数据库的索引了解吗?说一下索引的原理?聚集索引和非聚集索引了解吗?了解mysql的回表吗?
3.mysql实现分布式锁了解吗?还有没有其他更好的方式?
4.说一下事务的一些东西?你对事务的了解有哪些?说说数据库的乐观锁和悲观锁?
5.Redis有哪些持久化方式?你们在项目中一般怎么做持久化?如何实现集群和高可用?
6.Java中有哪些锁?synchronized与Lock有哪些区别?什么是公平锁和非公平锁?他们的底层怎么实现的?
AQS原理了解吗?能不能详细介绍一下?
7.说一下线程池的原理?ExcutorService下的四种线程池分别用在什么场景下?为什么单线程池和固定线程池使用的任务阻塞队列是LinkedBlockingQueue(),而缓存线程池使用的是SynchronousQueue()呢?
8.说一下violate关键字吧?刚才你提到可见性?他是如何保证可见性的?
9.说一下GC吧,什么时候进行Full GC呢?你了解哪些收集器?CMS和G1。详细谈谈G1的优点

最后写了一个编程题。
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。

例如,输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8
输出: 6
解释: 节点 2 和节点 8 的最近公共祖先是 6。

示例 2:

输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 4
输出: 2
解释: 节点 2 和节点 4 的最近公共祖先是 2, 因为根据定义最近公共祖先节点可以为节点本身。


紧接着就约了二面,二面比较注重设计

二面

面试官上来就让设计了一个小型的社交系统。从数据库设计开始,然后设计架构。这个花了很长时间。
然后问了下dubbo的原理,有没有看过dubbo源码?dubbo的容错机制?
然后又是写题了,是股票买卖的一道题
给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。
设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):
你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。

示例:

输入: [1,2,3,0,2]
输出: 3
解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]
最后还是有什么想问的?
#快手##社招##面经##Java工程师#
全部评论
最后你拿到快手offer了吗,什么部门呢
1 回复
分享
发布于 2020-02-03 18:32
请问这是几年经验的面试题,好像没怎么问框架的东西
点赞 回复
分享
发布于 2019-12-26 13:48
滴滴
校招火热招聘中
官网直投
最后一题不会啊
点赞 回复
分享
发布于 2019-12-26 23:10
你这是复制别人的?
点赞 回复
分享
发布于 2020-04-24 02:55
一面和二面,时间相差多久
点赞 回复
分享
发布于 2020-07-01 16:16
写了经验不说岗位吗?
点赞 回复
分享
发布于 2021-03-22 19:38

相关推荐

1 74 评论
分享
牛客网
牛客企业服务