线程池核心参数介绍一下

核心线程数corePoolsize、最大线程数maximumPoolsize、最大存活时间keepAliveTime、存活时间单位unit、工作队列workQueue、线程工厂threadFactory、拒绝策略handler

线程池执行流程

  1. 当一个任务提交后,先判断核心线程是否满,没有满就使用核心线程执行任务
  2. 如果满了,就判断阻塞队列是否满,如果没有就将任务放入阻塞队列
  3. 阻塞队列满了后,判断线程池是否满了(也就是判断是否达到最大线程数),如果没有就创建非核心线程执行任务。
  4. 满了后执行拒绝策略。

Java锁的实现方式
synchronized 关键词的优化和原理

spring 容器怎么处理接口请求的

用过哪些 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)不能走索引

什么情况会索引失效

(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: 锯齿形遍历