0%

3月29日面试记录

面试过程:

  1. 做题 7道

    1. string reverse 字符串反转
    2. 从文件中读取最大长度word
    3. sql查询 去重取id最小记录
    4. 验证ip
    5. 检测string中的重复字符
    6. 通过命令行输入表达式进行计算
    7. 检测一个数字是否基本类型 ?
  2. 问题:

    1. 如何使用@Controller 注解实现返回@RestController json结构
    2. 数据库连接池配置参数有那些
    3. redis使用的数据接口有那些,以及大key使用zset结构场景有那些

sql查询去重问题答案

1
2
3
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
union all
select a.id,a.user_icon from user_info a where a.user_icon not in (SELECT user_icon from user_info GROUP BY user_icon HAVING count(1)>1)

美的面试问题整理

  1. spring的事务问题

    1. 事务的隔离级别 5种: ISOLATION_DEFAULT 默认,使用后端数据库的默认隔离级别,Mysql的默认是可重复读
    2. ISOLATION_READ_UNCOMMITTED 读未提交
    3. ISOLATION_READ_COMMITTED 读已提交
    4. ISOLATION_REPEATABLE_READ 可重复读
    5. ISOLATION_SERIALIZABLE 串行化

    事务的传播机制,就是当多个事务同事存在的情况 Spring 如何处理这些事务的行为

    1. Required 默认,如果没有当前事务,就创建一个事务,如果存在一个事务,就加入到这个事务中
    2. SUPPORTS 支持当前事务,如果没有当前事务,就以非事务方法执行
    3. Mandatory 使用当前事务,如果没有当前事务,就抛出异常。
    4. Required_new 新建事务,如果存在当前事务,就把当前事务挂起
    5. Not_supported 以非事务方式执行操作,如果当前事务存在则抛出异常
    6. Nested 如果当前存在事务,则在事务内执行,如果当前没有事务,则执行与Required 类型的操作。
    7. 默认的传播机制: PROPAFATION_REQUIRED
  2. 声明式事务失效情况

    1. @Transactional 应用在非Public 修饰的方法上。
    2. @Transactional 注解属性propagation 设置错误
    3. @Transactional 注解属性rollbackFor 设置错误
    4. 同一个类中方法调用,导致@Transactional 失效。
  3. Redis的持久化

  4. mysql的事务 间隙锁问题

美的电话面试问题:

  1. 分布式锁原理
  2. 分布式事务问题
  3. 分页组件是什么

Welcome to my other publishing channels