天天看点

快手实习java开发面试2020.5.10

一面

1.Spring应用Web服务请求返回Resource的过程?

2.HanderMapping的过程?数据怎么写进去的?Key Value是什么格式的?

3.拦截器和过滤器有什么区别?

4.SpringAOP用它做什么事情?织入的时候是运行时还是类加载时织入?

5.SpringAOP怎么实现?动态代理几种方式实现?

6.JVM内存模型?Java方法局部变量保存在哪里?

堆里存放什么?堆分代?比例?创建对象有可能放入到老年代里吗?MinorGC和FullGC的触发条件?

7.CMS的过程?总共需要几次STW?标记的过程?GCRoots有哪些?G1有了解吗?G1回收过程还有STW吗?

8.Java四种引用类型?

9.volatile关键字的含义?

10.实现原子性i++怎么办?

11.巨大的整型数组,找到第k大的数,怎么办?

12.快排的好处?

13.堆排序的复杂度,堆排的优势(对内存要求小一些)?

14.很大的数组,除了一个数字出现了一次,其他的数字出现两次怎么办?

15.很大的数组,除了一个数字出现了一次,其他的数字出现三次怎么办?

16.代码:判断一个树是不是二叉搜索树?

二面

1.SpringMVC的流程?如果遇到异常怎么处理?

2.SpringMVC并发的时候会不会出现线程安全的问题?

3.实现线程安全怎么办?juc下的可以作用于Controller吗?

4.SpringBean的作用域有哪些?单例和原型有什么区别?

什么情况需要用到原型模型?

5.autowired和resource注解的区别?resource怎么找到这个Bean的?通过什么信息找到Bean的实例的?

6.MyBatis的#和$的区别

7.Redis的数据类型?String查询复杂度是O(1),怎么实现的?SDS和c的String的区别?zset的底层数据结构?

8.统计三天内登录用户的id?

9.MySQL户籍系统,身份证号怎么加索引?面试官提醒:MySQL有索引类型?主键,辅助,联合,Hash

10.MySQL联合索引为什么要遵循最左前缀原则?底层结构是什么样的?

11.不可重复读(修改)和幻读(删除和增加)的区别?

12.CMS有什么缺点?内存碎片是怎么导致的?其他的垃圾回收器怎么解决这个问题?

13.AQS非公平锁怎么实现的?排队的时候怎么知道某线程该运行了呢?通过什么方式通知(park()方式)?

14.CountDownLatch怎么通过AQS来底层实现功能的?

15.代码:删除倒数第k个节点,O(n)复杂度