首页 > 秋招第一面:快手凉经 8.10
头像
大工徐徐
编辑于 2020-08-11 11:02
+ 关注

秋招第一面:快手凉经 8.10

快手一面 1h8m

1、聊项目,介绍一下你的项目

个人博客系统。前端展示和后台管理啊,,巴拉巴拉

2、说一下AOP

面向切面编程,切面的定义,有哪些是切面(日志,事务),底层原理,动态代理

3filterInterceptor的区别

没答好。答案贴在下面

1filter接口在javax.servlet包下面。inteceptor定义在org.springframework.web.servlet中。
2filterservlet规定的,interceptor即可用于web程序,也可用于application中。
3filterservlet容器支持的,interceptorspring框架支持的。
4filter通过dochain放行,interceptor通过prehandler放行。
5filter只在方法前后执行,interceptor粒度更细,可以深入到方法前后,异常抛出前后。

4cpu100了,怎么排查原因

这个真没了解过,我说可能产生死锁,或者某些线程一直自旋

· 如何定位是哪个服务进程导致CPU过载

· 哪个线程导致CPU过载

· 哪段代码导致CPU过载

5、死锁产生的必要条件

四个。不可剥夺,循环等待,互斥,请求和保持(这个忘记了)

6、死锁怎么检测?

没答上,只知道死锁避免、死锁解除

首先针对每种资源类型只有一个实例的情况。

构建资源分配图,采用深度优先遍历算法确定是否存在环路:依次将每一个节点作为一棵树的根节点,并进行深度优先搜索,如果再次碰到已经遇到过的节点,那么就算找到了一个环。如果从任何给定的节点出发的弧都被穷举了,那么就回溯到前面的节点。如果回溯到根并且不能再深入下去,那么从当前节点出发的子图中就不包含任何环。如果所有的节点都是如此,那么整个图就不存在环也就是说系统不存在死锁。

第二种情况是每种资源类型还有多个实例的情况

构建向量矩阵,利用向量矩阵算法模拟资源分配。这种算法的第一步是寻找可以运行完毕的进程Pi,该进程的特点是它有资源请求并且该请求可被当前的可用资源满足(R矩阵第i行向量小于A)。这一选中的进程随后就被运行完毕,在这段时间内它释放自己持有的所有资源并将它们返回到可用资源库中(将C矩阵的第i行向量加到A)。然后这一进程被标记为完成。如果所有的进程最终都能运行完毕的话,就不存在死锁的情况。

7、了解CMS吗?说一说他的过程

老年代垃圾器,经常和parNew配合使用,初始标记、并发标记、重新标记、并发清除

附加:full gc 会强制young gc吗? 没听说过,应该不会,大家知道吗?

8、重新标记的作用

对并发标记过程中产生的垃圾对象做标记

9、我看你的项目用到了分页,是怎么分页的?

JPADao接口继承jpaRepository,其中有个方法,将Pageable对象传入就可以分页了

10、咱们来做个分页的算法吧,m个有序数组长度都为n,如何在最小的时间复杂度下进行全部排序

刚开始想到归并排序的思想,循环遍历m个数组的第一个,每次取出最小的一个,并记录是哪个数组的,然后index+1。一是不知道怎么实现、二是时间复杂度很大。On*m^2

然后引导我考虑堆排序,时间复杂度降为O(n*mlgm),还是没实现出来,需要自定义个节点类,里边记录groupindexvalue。有大佬的话,帮我实现一下。

11、可能刚才那个太难了,我们换个简单点的,先说说intlong的大小、int的取值范围。

算法:给特别大的两个数,只能用String存的下,实现它俩的加法。

最终做是做出来了,但是也是通过面试官不断指错做出来的,  汗。。。

12、你有什么想问我的吗?

请您评价一下我刚才的表现

算法有待提高,基础还行,广度也可以再扩展一下

总体来说,感觉问的意想不到,不是从基础的问起,CPU 100怎么排查、死锁怎么检测都是冷门知识点,可能也跟这个面试官老练有关(35左右吧)

更多模拟面试

全部评论

(7) 回帖
加载中...
话题 回帖

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐