海康威视 java开发后端最新校招面试题

Java

介绍一下 Spring Boot 整体的启动流程?

  1. 首先从main找到run()方法,在执行run()方法之前new一个SpringApplication对象

  2. 进入run()方法,创建应用监听器SpringApplicationRunListeners开始监听

  3. 然后加载SpringBoot配置环境(ConfigurableEnvironment),然后把配置环境(Environment)加入监听对象中

  4. 然后加载应用上下文(ConfigurableApplicationContext),当做run方法的返回对象

  5. 最后创建Spring容器,refreshContext(context),实现starter自动化配置和bean的实例化等工作。

说一说 Spring MVC 整体的执行流程?

图片

流程图步骤详解:

  1. 发送请求:用户发送的所有请求都会到前端控制器DispatcherServlet

  2. 请求查找Handler:DispatcherServlet收到请求会调用HandlerMapping(处理器映射器)查找Handler

  3. 返回Handler:处理器映射器根据url返回具体的处理器,生成HandlerExecutionChain对象,其中包含了目标Handler和若干拦截器(可能没有)

  4. 请求调用Handler:DispatcherServlet通过Handler寻找匹配到HandlerAdapter

  5. 执行Handler:HandlerAdapter调用Handler

  6. 返回结果:Handler执行完成,返回一个ModelAndView对象

  7. 返回结果给DispatcherServlet:HandlerAdapter将Handler执行结果ModelAndView返回给DispatcherServlet

  8. 如果Handler返回的View是逻辑视图名称而不是真正的View对象,DispatcherServlet调用resolveViewName方法在配置的所有视图解析器(ViewResolver)中,寻找合适的,最终通过ViewResolver将逻辑视图名解析成真正的View对象

  9. ViewResolver通过调用createView方法尝试将视图名解析成View,如果无法解析会返回Null(注: 如果ViewResolver是派生自AbstractCachingViewResolver则在调用createView方法前会先尝试根据viewName和Iocale从缓存中查找对应的视图对象)

  10. DispatcherServlet调用View的render方法进行渲染视图 (即将模型数据填充至request域)

  11. DispatcherServlet响应用户

MySQL

MySQL 索引的机制,类型有哪些?

MySQL可以按照四个角度来分类索引。

  • 按「数据结构」分类:B+tree索引、Hash索引、Full-text索引

  • 按「物理存储」分类:聚簇索引(主键索引)、二级索引(辅助索引)

  • 按「字段特性」分类:主键索引、唯一索引、普通索引、前缀索引

  • 按「字段个数」分类:单列索引、联合索引

接下来,按照这些角度来说说各类索引的特点。

按数据结构分类

从数据结构的角度来看,MySQL 常见索引有 B+Tree 索引、HASH 索引、Full-Text 索引。

每一种存储引擎支持的索引类型不一定相同,我在表中总结了 MySQL 常见的存储引擎 InnoDB、MyISAM 和 Memory 分别支持的索引类型。

图片

InnoDB 是在 MySQL 5.5 之后成为默认的 MySQL 存储引擎,B+Tree 索引类型也是 MySQL 存储引擎采用最多的索引类型。

在创建表时,InnoDB 存储引擎会根据不同的场景选择不同的列作为索引:

  • 如果有主键,默认会

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扫地僧009

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值