面试题清单

Java语言相关面试题

  1. JVM的内存模型
  2. JVM的垃圾回收
  3. 线上如何JVM排错
  4. 了解反射吗反射的使用场景用过反射吗
  5. 什么是阻塞IO,什么是非阻塞IO
  6. HashMap 和 Hashtable 有什么区别

集合相关问题,HashMap

  1. HashMap数据结构是怎样的
  2. HashMap是线程安全的吗如何实现线程安全的HashMap
  3. HashMap可以动态扩容吗
  4. HashMap的HashCode之类的问题
  5. HashMap的Put原理
  6. HashMap 和 Hashtable 有什么区别
  7. 集合了解过吗介绍一下集合的原理。
  8. 线程安全的集合都有哪些
  9. 集合的原理和实现
  10. 为啥要有HashCode,Hash计算是什么
  11. 链表如何扩容

线程

  1. 有使用过多线程吗多线程的使用场景
  2. 线程池的核心参参数
  3. 线程的生命周期
  4. 如何使用线程池
  5. 如何确保你的线程
  6. 如何知道你的线程是死锁了,如何排查线上问题
  7. 如何自定义线程的线程号、名字
  8. 如何自己实现一个定时批处理

数据库

  1. 数据库的四大特性,说一下 ACID 是什么
  2. 数据库的事务、事务的隔离级别
  3. 数据库优化
  4. 数据库设计的原则
  5. 谈谈你项目中的数据库SQL优化
  6. 什么情况下会索引失效

Redis

  1. Redis如何实现分布式锁
  2. Redis的基本数据类型
  3. Redis的持久化是如何实现的
  4. Redis的使用场景
  5. Redis的雪崩,缓存穿透
  6. 布隆过滤器
  7. 如何实现Redis的高可用
  8. Redis的过期策略,重新设置值的时候是否会刷新过期时间。

设计模式

  1. 单一职责是什么
  2. 你了解过的设计模式都有哪些
  3. Spring涉及的设计模式都有哪些
  4. 开发中使用过的设计模式有哪些(一定要说几个)

数据结构、算法

  1. 排序算法如何实现
  2. 树的遍历方式有几种

框架Spring、SpringBoot、SpringCloud

  1. 用过SpringCloud的哪些组件
  2. Mybatis的动态代理,如何实现动态代理。
  3. 如何使用SpringCloud Gateway实现一个IP负载均衡
  4. Spring的AOP
  5. Spring bean的生命周期
  6. Spring是如何解决循环依赖问题的
  7. Mybatis只有接口,没有实现类,为什么可以自动注入

中间件

  1. 你用过哪些中间件
  2. 了解Rabbit MQ吗
  3. 了解Kafka吗
  4. Rabbitmq 怎么避免消息丢失

协议

  1. 了解过RPC框架吗
  2. 讲讲CAS协议的实现原理(简历中提到了,所以都会问)
  3. HTTP和HTTPS的区别
  4. HTTPS是如何实现的
  5. 介绍一下TCP和UDP的区别
  6. 同步和异步的区别
  7. 如何设计一个好的接口
  8. 如何确保接口的幂等性
  9. 对称加密和非对称加密是什么,分别用于哪些场景,为什么
  10. CAS协议中密码是如何加密传输的
  11. RSA算法的原理是什么
  12. 介绍一下用户发送一个请求的全流程是怎么样的
  13. 如何解决跨域问题

部署

  1. 对Docker的理解和使用程度
  2. 了解过K8S吗
  3. ELK的原理是什么

其他非技术问答题

  1. 项目中让你最有成就感的事有哪些
  2. 未来是怎么打算的
  3. 你遇到过的难点有哪些
  4. 你有个人博客或者是个人能够展示自己能力的方式吗
  5. 离职原因是什么呢
  6. 介绍一下你的项目吧
  7. 期望薪资是多少
  8. 个人介绍(重中之重zzzz)
什么时候开始都不晚——沃尔舅·硕德
03-27 00:28