面试时长70min左右
自我介绍;
介绍项目;
项目中难点深挖(一个异步扫描任务, 一个SQL优化问题);
Spring IOC, AOP实现, 原理应用场景等;
Bean的初始化流程, Bean的Scope解释;
Redis常用的数据结构应用场景, 个别的底层数据结构等;
MySQL事务ACID介绍;
MySQL索引实现;
MySQL优化流程, 索引创建的原则等;
final 关键字;
线程池相关参数介绍;
syncronized关键字,锁升级降级;
ReentrantLock介绍, 应用场景, 并发包里面的都讲讲(时间不够跳过了);
根据简历上写的技术栈提问(Python, 网络爬虫, Pandas, 机器学习之类的, 这些是我自己学习的, 因为没准备相关面试, 说的很模糊);
然后就是堆排序知识, 跳表;
三次握手四次挥手;
编程题俩道,
一道合并有序链表, 合并k个有序链表;
一道顺时针打印矩阵(这个边界值处理很棘手, 写了俩分钟要求换道题目, 我20天之前写过, 效率还是蛮高的, 但是一点一点尝试才完成的, 花费了有半小时左右);
超多数取前k小的(最大堆);
换了道题目是有序但部分不连续的数组查找target值的问题, [4, 5, 6, 7, 0, 1, 2, 3]这样的数组, 我一开始是以为这个翻转的k是给定的, 想直接用二分查找解决, 面试官提示这个k值不确定, 我就想顺序判断不连续的点后再二分查找, 时间复杂度O(n)了, 答的不太好;
全部评论
(2) 回帖