我自己整理的 基础面试题
1. 自我介绍
2. 怎么理解原子性
原子性的操作是不可被中断的一个或一系列操作。
(提到原子性其实应该第一时间想到线程加锁保证线程不会发生线程切换或者不会被打断,我想到数据库去了)
3. 原子性适合什么样的场景
多线程,高并发
4. 什么是线程池
我说了线程池消耗比自己手动创建线程池少
5. 线程池为什么消耗比手动创建线程池少
6. 池化思想?通过什么样的原理为了解决什么样的问题
把一些能够复用的东西放到池中,避免重复创建、销毁的开销,从而极大提高性能。
7. 在高并发场景下如何规划线程池
8. 什么是IOC
9. DI
10. ioc和di之间是什么关系
11. AOP
12. IOC和AOP的关系
13. 了解netty?(不了解)
14. netty里的reactor设计模式?(没听清)
15. 描述自己最熟悉的两种设计模式
16. 提升一个查询sql的qps(每秒访问量)手段有哪些
- 减少请求的数据量
- 只返回必要的列:最好不要使用 SELECT * 语句。
- 只返回必要的行:使用 LIMIT 语句来限制返回的数据。
- 缓存重复查询的数据:使用缓存可以避免在数据库中进行查询,特别在要查询的数据经常被重复查询时,缓存带来的查询性能提升将会是非常明显的。
- 减少服务器端扫描的行数
- 最有效的方式是使用索引来覆盖查询。
- 切分大查询
- 分解大连接查询
全部评论
(0) 回帖