整理面试题

  1. JVM频繁FGC如何排查,FGC的原因是什么,如何减少FGC

  2. 怎么查看GC日志,GC日志关注哪些内容,通过这些内容能总结出什么问题

  3. spring事务的具体实现是怎么做的,事务为什么会失效,针对失效的事务怎么优化

  4. 锁在spring事务中的使用方式,spring事务内锁的释放方式

  5. JVM内存有哪些区域,这些区域的上层是什么,除了堆,还有什么

  6. 什么情况下会出现FGC,出现FGC后如何排查代码,出现FGC后如何定位JVM堆内存问题

  7. 栈溢出的怎么排查问题,什么情况下栈会OOM

  8. 如何把方法区撑爆

  9. 发生一次FGC之后,堆内存未释放过多,如何排查原因

  10. 当JVM堆内存溢出后,其他线程是否可继续工作

  11. MySQL锁有几种,间隙锁如何实现的,和隔离级别有什么关系

  12. 隔离级别默认是哪个,如果改成RC会出现什么问题,RR如何解决幻读的(MVCC)

  13. MySQL的索引有几种类型,结构是什么,索引什么情况下会不生效,怎么查看SQL是否用到了索引

  14. 组合索引a,b,c,order by c,b,a会用到索引吗,为什么

  15. explain中的extra中的using index和using filesort的区别

  16. explain中需要关注哪些属性字段,意义分别是什么

  17. 一条SQL最多会使用多少个索引

  18. a、b、c三个字段,组合索引ab、ac、bc,where中使用到a=? and b=? and c=?,会命中哪一个索引,为什么

  19. 如何排查MySQL的慢查询语句

  20. 一条SQL查询非常慢,怎么优化这条SQL

  21. CPU指标突刺,是什么原因,怎么定位问题

  22. 系统监控是如何做的,服务日志监控是如何做的,服务告警如何做的

  23. 服务性能瓶颈是如何定位的,定位后如何提升性能的,高可用要解决的问题是什么,又会带来什么问题

  24. 服务接口响应慢,如何排查和定位问题

  25. 为什么引入Redis,引入Redis后做了什么,如何确定哪一块逻辑要用Redis,如果不用Redis可不可以,Redis用的哪一个数据结构

  26. 服务限流、熔断怎么做的,什么情况下会出现熔断,熔断降级是怎么做的,实现原理是什么

  27. 如何监控服务接口的QPS

  28. 链路追踪是如何做的,原理是什么,对于单体应用,如何监控请求链路

  29. 在xxx项目中,有什么比较不错的设计方案,带来了什么效果

  30. 平时工作中的主要内容是什么,开发和管理的比例是多少

  31. 分布式ID生成器设计原理是什么

  32. 锁是如何实现的,使用的哪种锁

  33. 为什么设计为单体架构,预计什么时候改为高可用架构

  34. 主要原理是什么,QPS是多少,吞吐量是多少

  35. stringbuffer和stringbuilder的区别

  36. ArrayList和linkedlist的区别

  37. NIO,select、epoll、poll和reactor

  38. 时间轮子实现调度

  39. JVM调优

  40. G1/ZGC的算法,新版jdk对CMS的优化

  41. reuseport详解

  42. Redis相关的知识点

  43. mycat和shardingjdbc场景和区分

  44. sdk和proxy的稳定性更新

  45. 延迟队列的设计

  46. 时间轮子怎么分流

  47. MySQL索引结构为什么不用跳表

  48. 网关主要功能,如何设计

  49. Redis是如何做主从切换的(Sentinel)

  50. 微信抢红包设计