面试题清单
Java语言相关面试题
- JVM的内存模型
- JVM的垃圾回收
- 线上如何JVM排错
- 了解反射吗反射的使用场景用过反射吗
- 什么是阻塞IO,什么是非阻塞IO
- HashMap 和 Hashtable 有什么区别
集合相关问题,HashMap
- HashMap数据结构是怎样的
- HashMap是线程安全的吗如何实现线程安全的HashMap
- HashMap可以动态扩容吗
- HashMap的HashCode之类的问题
- HashMap的Put原理
- HashMap 和 Hashtable 有什么区别
- 集合了解过吗介绍一下集合的原理。
- 线程安全的集合都有哪些
- 集合的原理和实现
- 为啥要有HashCode,Hash计算是什么
- 链表如何扩容
线程
- 有使用过多线程吗多线程的使用场景
- 线程池的核心参参数
- 线程的生命周期
- 如何使用线程池
- 如何确保你的线程
- 如何知道你的线程是死锁了,如何排查线上问题
- 如何自定义线程的线程号、名字
- 如何自己实现一个定时批处理
数据库
- 数据库的四大特性,说一下 ACID 是什么
- 数据库的事务、事务的隔离级别
- 数据库优化
- 数据库设计的原则
- 谈谈你项目中的数据库SQL优化
- 什么情况下会索引失效
Redis
- Redis如何实现分布式锁
- Redis的基本数据类型
- Redis的持久化是如何实现的
- Redis的使用场景
- Redis的雪崩,缓存穿透
- 布隆过滤器
- 如何实现Redis的高可用
- Redis的过期策略,重新设置值的时候是否会刷新过期时间。
设计模式
- 单一职责是什么
- 你了解过的设计模式都有哪些
- Spring涉及的设计模式都有哪些
- 开发中使用过的设计模式有哪些(一定要说几个)
数据结构、算法
- 排序算法如何实现
- 树的遍历方式有几种
框架Spring、SpringBoot、SpringCloud
- 用过SpringCloud的哪些组件
- Mybatis的动态代理,如何实现动态代理。
- 如何使用SpringCloud Gateway实现一个IP负载均衡
- Spring的AOP
- Spring bean的生命周期
- Spring是如何解决循环依赖问题的
- Mybatis只有接口,没有实现类,为什么可以自动注入
中间件
- 你用过哪些中间件
- 了解Rabbit MQ吗
- 了解Kafka吗
- Rabbitmq 怎么避免消息丢失
协议
- 了解过RPC框架吗
- 讲讲CAS协议的实现原理(简历中提到了,所以都会问)
- HTTP和HTTPS的区别
- HTTPS是如何实现的
- 介绍一下TCP和UDP的区别
- 同步和异步的区别
- 如何设计一个好的接口
- 如何确保接口的幂等性
- 对称加密和非对称加密是什么,分别用于哪些场景,为什么
- CAS协议中密码是如何加密传输的
- RSA算法的原理是什么
- 介绍一下用户发送一个请求的全流程是怎么样的
- 如何解决跨域问题
部署
- 对Docker的理解和使用程度
- 了解过K8S吗
- ELK的原理是什么
其他非技术问答题
- 项目中让你最有成就感的事有哪些
- 未来是怎么打算的
- 你遇到过的难点有哪些
- 你有个人博客或者是个人能够展示自己能力的方式吗
- 离职原因是什么呢
- 介绍一下你的项目吧
- 期望薪资是多少
- 个人介绍(重中之重zzzz)
什么时候开始都不晚——沃尔舅·硕德
03-27 00:28