1. 线程池创建的作用是什么 ? 线程池的核心参数有哪些 ? 线程池执行任务的流程 ?
作用:提高线程的复用性,降低损耗资源。
核心参数:核心线程 、最大线程数 、等待空闲时间、时间单位、任务队列、线程工厂、拒绝策略
执行流程: 首先在提交任务的时候会先去判断核心线程能否执行,如果不能执行就要交给任务队列,此时需要判断任务队列是否满了,如果任务队列满了的话判断能否创建零时线程,如果不能够创建零时线程的话则执行拒绝策略。
2. 请简单聊聊Mybatis中的 # 与 $ 的区别,以及Mybatis中的常见的动态SQL的标签<if> <foreach> <set> <where> 及其 作用 和应用场景 ?
#,占位符最后会替代成?号,能够防止SQL注入同时性能更高。
$,字符拼接符,拼接字符的。
<IF>做条件判断的
<FOREACH>做循环的,通常用作批量删除或者批量增加
<WHERE>如果条件成立,where关键字会自动生成,同时去除第一个条件前面的AND
<SET> 用作与更新,自动生成SET关键字,同时可以去除最后一个属性后面的逗号。
3. SpringAOP中的常见的通知类型有哪些? 这些通知类型的执行时机?
前置通知@Before 目标方法执行前执行
环绕通知@Before 目标方法执行前执行,也可以在目标方法执行之后
后置通知@After 目标方法执行以后
返回后通知@AfterRunturing 目标方法成功执行以后
异常后通知:@Afterthrowing 目标方法执行抛出异常的时候