一周面试总结
废话
一周时间进行了15次的面试,那叫一个酸爽,基本每天平均面试3次,我现在听到面试就想吐,哈哈,最恶心的一点是不管一面还是二面都让你做自我介绍,这才是最恶心的,自我介绍我现在背的滚瓜烂熟,废话少说,记录下常问的问题。
最常问题排行
1. JVM相关
这个基本每次都要被问到,其中包括:
- 各种垃圾回收器
- CMS 和G1 有什么区别
- CMS 原理
- 垃圾什么时候被回收
- JVM内存模型
- 垃圾回收的过程
- CPU升高怎么排查问题
- 有没有JVM参数调优的经验,你是怎么做的
- JVM常用参数设置
- jmap 和jstack使用
2. 多线程相关
- 线程池是怎么创建的有哪些参数
- 线程池的运行原理
- 拒绝策略有哪些
- 底层是怎么实现的
- synchronized实现原理
- lock实现原理
- synchronized和lock的区别
- 乐观锁和悲观锁的区别
- 项目中哪里用到了锁
- 高并发情况下你有哪些手段应对
- 线程之间怎么通讯
- volatile 底层原理
- 内存屏障
- 指令重排序
- countdownlatch用法
3. 集合相关
- 常用的集合类有哪些
- 链表和数组的区别
- hashmap当hash碰撞了怎么做(jdk1.7和1.8)
- hashmap是否线程安全
- 怎么解决hashmap线程非安全问题
- concurrenthashmap1.7和1.8的区别
- concurrenthashmap 怎么解决线程不安全问题
- concurrenthashmap get方法的时候有没有加锁,怎么实现线程安全的
3. 数据库相关
- mysql 索引数据结构
- b树和b+树的区别
- 你有哪些优化sql 的经历
- 优化sql的手段有哪些
- explain 主要看哪些参数
- 怎么避免回表
- 联合索引在索引中是怎么样的
- 模糊查询左边加% 为什么不走索引
- 索引建立的原则是什么
- 当数据量怎么分表,分库
- 分表后怎么不停机平滑上线- binlog
- mysql 默认隔离级别时什么
- 脏读和不可重复度的区别时什么
- mysql InnoDB是怎么解决不可重复的
- mysql InnoDB是怎么解决脏读的
4.mq相关
- 你用过哪些mq
- kafka和rocketmq的区别是什么
- 怎么保证数据不丢失
- 怎么保证顺序消费
- 怎么保证不重复消费
- rocketmq实现分布式事务的原理
- rocketmq半消息为什么消费者消费不到
5. redis相关
- 你有没有搭建过redis集群,主要设置哪些参数
- 说下哨兵模式
- 持久化到磁盘的你是怎么设置的
- 怎么解决雪崩,缓存击穿,缓存穿透问题
- 怎么解决一个热点key的问题
- 怎么解决多个热点key的问题
- 分布式锁的实现方案,有没有遇到什么问题
- redisson的实现原理,在使用中有没有遇到问题
6. 微服务相关
- springcloud使用了哪些组件
- 怎么实现一个注册中心
- ribbon负载均衡策略有哪些
- 说一下CAP
- 注册中心怎么技术选型的
- 微服务是怎么拆分的,拆分原则是什么
- 怎么解决微服务注册到注册中心延时下线的问题
- eureka是怎么实现高可用的
- feign的实现原理是什么
- consul的实现原理
- ribbon是怎么用的,怎么实现负载均衡的
- RPC框架有没有用过
源码相关
- 说下spring
- 说下bean是如何加载的
- 能否定义一个跟源码类一样的类,会不会生效
- bean 的生命周期
- aop的实现原理
- mybatis是通过mapper怎么操作数据库的
- 有没有做过连接双数据库
- springboot是怎么自动加载的
- springboot 优点有哪些
设计场景
- 设计一个发送短信验证码的思路
- 设计一个秒杀系统,需要注意哪些,可能存在哪些问题
- 拆分表后怎么不停机平稳上线,当有问题还能回退
- 当cpu 升高时怎么排查问题
- 设计一个鉴权的方案,当别人抓包后伪造访问怎么办
- kafka消费能力不足时怎么办