Java开发-技术面
《面试题目》
- ArrayList排序方式
- 数组和链表的区别
- 往中间删除数据,数组和链表的时间复杂度
- 单向链表逆序打印的方式
- sql倒数第2页怎么查询
- 在前一题基础上,数据量很大怎么优化
- 联合索引创建顺序
- 索引失效的情况
- 用户定位产生大量抖动相似点,如何绘制最终轨迹线
《参考解析》
-
MySQL深度:MySQL InnoDB使用B+树索引,支持ACID事务。关键知识点:聚簇索引(主键索引)叶节点存完整行数据;辅助索引叶节点存主键值(需回表);MVCC通过undo log版本链+ReadView实现多版本并发控制,解决脏读/不可重复读;事务隔离级别从低到高:读未提交→读已提交→可重复读(默认)→串行化。
-
算法题解析:常用算法思路:动态规划(状态转移方程,自底向上);BFS/DFS(图遍历,BFS找最短路,DFS回溯);双指针(有序数组去重/两数之和);滑动窗口(子串/子数组问题);二分查找(有序或单调性)。时间复杂度分析:关注最坏情况和平均情况。