线程池核心参数介绍一下
核心线程数corePoolsize、最大线程数maximumPoolsize、最大存活时间keepAliveTime、存活时间单位unit、工作队列workQueue、线程工厂threadFactory、拒绝策略handler
线程池执行流程
- 当一个任务提交后,先判断核心线程是否满,没有满就使用核心线程执行任务
- 如果满了,就判断阻塞队列是否满,如果没有就将任务放入阻塞队列
- 阻塞队列满了后,判断线程池是否满了(也就是判断是否达到最大线程数),如果没有就创建非核心线程执行任务。
- 满了后执行拒绝策略。
Java锁的实现方式
synchronized 关键词的优化和原理
用过哪些 spring 的常用注解
@Bean
@Controller
@Service
@Mapper
什么是拦截器、过滤器
IOC、AOP 介绍一下
IOC是控制反转,将对象创建的权力交给IOC容器去管理。
之前对象A需要对象B时,只能在程序中主动创建对象B,对象创建的权力是对象A。现在使用IOC控制反转后,IOC容器会将对象B自动注入到需要对象B的地方,对象创建的权力交给了IOC容器。
平时见过 AOP 的应用吗
用过日志收集吗?比如 log4j,sl4j 这样的。
线程的生命周期
创建、就绪、运行、有限期等待、无限期等待、结束
MySQL 的事务隔离级别
READ_UNCOMMITED读未提交
READ_COMMITED 读已提交
READ_REPEATED可重复读
serial 串行化
InnoDB 的默认隔离级别
什么是 Next-Key Lock
间隙锁,用来锁住索引
用来解决当前读(update、delete、insert)下的幻读问题
什么是最左前缀原则
如果建立了(a,b,c)的组合索引,那么查询 (a,c)、(a,b)、(a,b,c)是可以走索引的,但是(b,c)不能走索引
什么情况会索引失效
SQL 语句:查询学生所有课程平均分 > 60 的同学 id 和 平均成绩
select id,avg(score) from student group by id having avg(score)>60
用户会在 APP 上背单词,设计一个排行榜,能够每隔半小时更新一次,实现查询当日内背单词数量前十的用户和单词数。
redis设置过期时间,过期了再去数据库取值
select user,cnt from table order by cnt DESC limit 10
算法题:leetcode 103: 锯齿形遍历
√