要思考创建索引的列是否常常用于搜索条件,是否有强筛选性,是否常常变动,未来是否会失效
怎么测试索引是否生效使用explain解释器,看对应代表索引触发的变量key是否存在
说说B+树一种多路平衡查找树,B数是一种平衡多路查找树,一个m阶B树,最多有M-1个关键字,每个结点至多有m个孩子结点,根节点如果不是叶子节点,那么至少有两个子节点,非跟节点至少有m/2个子节点(向上取整),所有叶子节点都在同一层,在B数基础上做了些许改动,数据只存在叶子节点,非叶子节点只存指针 和标记,叶子节点按顺序排列,指针相连
说说JWTJWT全称 JSON WEB TOKEN 是一种权限验证方式
全量和分页怎么设计(没懂问的啥)分页一般就用limit #{begin},#{pageSize}
为什么要用消息队列,不用异步方法异步 解耦 削峰
怎么解决依赖冲突首先 观察报错信息进行定位,进行一个具体分析(比如分析对象实现类),然后排除掉冲突的jar包
Postman环境变量两种方法 第一种 点右边眼睛 add env,第二种 点左边 env,add
7.11保险系统开发 MVC流程前端发送请求,调用DispatcherServlet。DispatcherServlet调用HanderMapping,返回一个控制器及控制器拦截器对象
DispatcherServlet根据返回的控制器及拦截器发送执行链给handlerAdapter,找到一个合适的控制器,执行,返回一个Modelandview.DispatcherServlet选择一个合适的ViewReslover.ViewReslover将渲染结果返回给DispatcherServlet,再返回给前端。
Spring事务是基于数据库事务的一个拓展。
有两种,分别是编程式事务,声明式事务。
我们常用的是声明式事务即@Transcational
当我们使用事务时,方法内部的语句都是要么一起成功 要么一起失败。
可以通过rollbackfor属性就行配置,捕捉到异常进行回滚。
默认情况会对RuntimeException和Error进行回滚
原理是AOP将自动提交设置为了FALSE.
集合Collection和 MAP
Collection:list:有序可重复,可以有多个null set:无序,不可重复,只允许有一个null
Map:hashtable 线程安全效率低 表锁,hashmap 线程不安全 效率高,多线程情况下用ConcurrentHashMap 分段锁, treemap
进程是程序的一次执行,线程是操作系统调度资源的最小单位
多线程就是一个程序中多个顺序流在执行。
实现多线程的方式有四种 继承Thread,实现Runnable,实现Callable接口 可以有返回值,可以抛出异常,使用FutureTask接收,线程池
(1)自定义类实现 Callable 接口。 相较于实现 Runnable 接口的方式,重写的方法可以有返回值,并且可以抛出异常。
public class MyCallable implements Callable {
@Override
public String call() throws Exception {
Thread.sleep(500);
return "testCallable";
}
}
(2)创建FutureTask对象。
MyCallable myCallable = new MyCallable();
FutureTask futureTask = new FutureTask(myCallable);
FutureTask有两个重要方法:
isDone() 返回一个布尔值,表示call方法是否执行结束,不阻塞
get() 返回call方法的返回值,如果call方法未执行完会阻塞
(3)上述对象作为参数传入Thread构造方法,创建线程并启动。
new Thread(futureTask, “callable”).start();
while (!futureTask.isDone()) {
System.out.println(“未完成”);
}
System.out.println(futureTask.get());



