2024.7.12

面试

  1. 自我介绍, 上一段实习介绍

  2. 同步数据怎么做的, 怎么保证数据一致性, 除了重试以外怎么回滚 (没答上来, 面试官大概说了一下)

    • 同步方法: 先插入本地数据库, 调远端数据库, 如果出错则抛异常用事务回滚
    • 异步方法: 没听太清, 只记得有个死信队列. 下来想了一下, 可能不太一样, 想的是消费者端手动提交, 服务端发送后等待确认 ack/nack/无. 如果是 ack 则消费成功; nack 则消费失败, 事务回滚; 如果是没有等到确认则重发, 重发到一定次数后判定为失败, 事务回滚
  3. WebSocket 怎么用的, 具体用的什么注解, 有什么参数

  4. MyBatis-Plus 和 MyBatis 区别

  5. 为什么 Sa-Token, 怎么用的

  6. Spring Cloud 的组件有哪些

  7. new String() 和 引号创建 String 对象区别, new String() 的对象是放在哪

  8. HashMap 解决哈希冲突

  9. Redis 怎么用的

  10. @Async 用线程池了吗, 线程池的参数, 线程池什么时候创建新线程

  11. 负载均衡原理

  12. MySQL 事务, 用了吗, 怎么用的

  13. @Transactional()有几种模式, 什么时候失效

    几种模式这个下来也没找到确切的描述, 估计想问的可能是事务传播? 找到了一篇文章 , 里面对这个注解的各个参数都分析了.

  14. java 两种代理, jdk 动态代理和 cglib 两个区别

  15. 角色和人员几张表, 怎么存的

  16. 字符串的分割方法

  17. StringBuffer 和 StringBuilder 区别

  18. 实习时间

反问

经典业务、评价、流程三件套

总结

有一说一, 面试官还可以, 还帮我找到了一个项目里面没想到过的 bug. 公司说是 2C 业务, 但是很难评. 大概率不会考虑去吧, 毕竟不超过 150/d, 总不能一次不如一次吧 😂