一面:2023/11/15### Java- LinkedList比ArrayList效率高吗?- ArrayList为什么能以O(1)的时间复杂度找到元素?- ArrayList和HashSet区别- 如何比较两个对象是否相等?- 一个类A里面有一个String变量一个Integer变量,如何重写equals方法来判断类A的两个实例是否相等? - 检查是否是同一个对象 - 检查是否是同一类型 - 将传入的对象转换为类A的实例 - 检查每个字段是否相等- jvm中堆和栈的区别- 编译时异常和运行时异常区别,举例- Spring中事务传播机制- 乐观锁、悲观锁- 乐观锁ABA问题### MySQL- 事务的四大特性(基本上问MySQL必问这个)- jdbc执行步骤- jdbc中statement和preparedStatement区别? - preparedStatement预编译时防止sql注入(#、$)- select、from、where、group by、having、order by、limit执行顺序? - 一开始答错了,然后面试官两个两个的问,才答出来(感谢面试官的耐心) - where>group by>having>order by>limit- 什么情况下适合建索引?- 联合索引失效情况辨析以及索引下推### 代码辨析- 面试官让我看他写的代码,然后问问题- 考察自动拆箱、装箱、以及Integer的常量池- 对非**concurrent**包下的容器进行遍历时删除,问有什么问题?如何修改? - 使用迭代器、增强for循环来遍历 - 用stream的过滤代替遍历时删除 - 反射,面试官说不太好,就没问了 - 问gpt,g哥说还可以遍历时标记,遍历完删除,各位大佬们有想法不?### 三道SQL题- 让我讲怎么写,然后面试官共享屏幕写sql- 磕磕绊绊在面试官辅助下写出两道,第三道不会### 总结- 是整个秋招最硬核的一场面试,接近1h,而且这还只是实习😂- 基本上每个知识点都会刨根问到底- 有回答的模糊的地方的时候,面试官会写代码让辨析、判断等(面试官代码敲得飞快)