快手后端Java岗社招面筋分享

一面:

1、先做下自我介绍吧;

2、说一说你最近做的那个项目?然后针对简历提了几个问题。

3、我看你简历里面说做过mysql的优化,说说你都做过哪些优化或者优化的思路?

4、数据库的索引了解吗?说一下索引的原理?

5、聚集索引和非聚集索引了解吗?了解mysql的回表吗?

6、mysql实现分布式锁了解吗?还有没有其他更好的方式?

7、说一下事务的一些东西?你对事务的了解有哪些?

8、说说数据库的乐观锁和悲观锁?

9、Redis有哪些持久化方式?你们在项目中一般怎么做持久化?如何实现集群和高可用?

10、Java中有哪些锁?

11、synchronizedLock有哪些区别?什

12、么是公平锁和非公平锁?他们的底层怎么实现的?

13、AQS原理了解吗?能不能详细介绍一下?

14、说一下线程池的原理?ExcutorService下的四种线程池分别用在什么场景下?

15、为什么单线程池和固定线程池使用的任务阻塞队列是LinkedBlockingQueue(),而缓存线程池使用的是SynchronousQueue()呢?

16、说一下violate关键字吧?刚才你提到可见性?他是如何保证可见性的?

17、说一下GC吧,什么时候进行Full GC呢?你了解哪些收集器?CMSG1。详细谈谈G1的优点

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


百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 pq,最近公共祖先表示为一个结点 x,满足 x pq 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”

例如,输入: 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, 因为根据定义最近公共祖先节点可以为节点本身。


二面:

1、面试官上来就让设计了一个小型的社交系统。从数据库设计开始,然后设计架构。这个花了很长时间。

2、然后问了下dubbo的原理,有没有看过dubbo源码?dubbo的容错机制?

3、给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。

设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):

你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。

卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 )

示例:

输入: [1,2,3,0,2]

输出: 3

解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]


4、最后还有什么想问的?

#快手##Java工程师##面经##社招#
全部评论
这是纪念工作经验的面试题?2年?
2 回复 分享
发布于 2020-07-20 11:36
不太难哎
1 回复 分享
发布于 2020-07-20 00:09
老贴新发
1 回复 分享
发布于 2020-07-21 10:06
#快手Java工程师面经# #Java工程师面经# #社招面经# 👈点击话题查看更多同类面经干货!每日面经精选,为你发掘牛客干货!
点赞 回复 分享
发布于 2020-07-20 11:10
抄别人的
点赞 回复 分享
发布于 2020-12-29 06:18

相关推荐

努力学习的小绵羊:我反倒觉得这种挺好的,给不到我想要的就别浪费大家时间了
点赞 评论 收藏
分享
评论
9
76
分享
牛客网
牛客企业服务