面试过程:
做题 7道
- string reverse 字符串反转
- 从文件中读取最大长度word
- sql查询 去重取id最小记录
- 验证ip
- 检测string中的重复字符
- 通过命令行输入表达式进行计算
- 检测一个数字是否基本类型 ?
问题:
- 如何使用@Controller 注解实现返回@RestController json结构
- 数据库连接池配置参数有那些
- redis使用的数据接口有那些,以及大key使用zset结构场景有那些
sql查询去重问题答案
1 | SELECT a.id,a.user_icon from user_info a LEFT JOIN user_info b on a.user_icon = b.user_icon and a.id!=b.id WHERE b.id is not null and a.id<b.id |
美的面试问题整理
spring的事务问题
- 事务的隔离级别 5种: ISOLATION_DEFAULT 默认,使用后端数据库的默认隔离级别,Mysql的默认是可重复读
- ISOLATION_READ_UNCOMMITTED 读未提交
- ISOLATION_READ_COMMITTED 读已提交
- ISOLATION_REPEATABLE_READ 可重复读
- ISOLATION_SERIALIZABLE 串行化
事务的传播机制,就是当多个事务同事存在的情况 Spring 如何处理这些事务的行为
- Required 默认,如果没有当前事务,就创建一个事务,如果存在一个事务,就加入到这个事务中
- SUPPORTS 支持当前事务,如果没有当前事务,就以非事务方法执行
- Mandatory 使用当前事务,如果没有当前事务,就抛出异常。
- Required_new 新建事务,如果存在当前事务,就把当前事务挂起
- Not_supported 以非事务方式执行操作,如果当前事务存在则抛出异常
- Nested 如果当前存在事务,则在事务内执行,如果当前没有事务,则执行与Required 类型的操作。
- 默认的传播机制: PROPAFATION_REQUIRED
声明式事务失效情况
- @Transactional 应用在非Public 修饰的方法上。
- @Transactional 注解属性propagation 设置错误
- @Transactional 注解属性rollbackFor 设置错误
- 同一个类中方法调用,导致@Transactional 失效。
Redis的持久化
mysql的事务 间隙锁问题
美的电话面试问题:
- 分布式锁原理
- 分布式事务问题
- 分页组件是什么