面试总结1

1.springboot的运行原理
  1. 约定大于配置
  2. 内嵌tomcat或jetty等servlet服务器
  3. 不用配置xml。
  4. 通过maven父子关系,快速整合依赖。
2.什么是ajax

ajax是异步javascript,是一种创建动态页面的技术,可以通过后台与服务器的少量数据交换,实现页面的部分刷新。相较于之前的form表单提交后的全局刷新,能够节省网络资源。
实现步骤:

  1. 创建一个XMLHttpRequest对象
  2. 创建一个http请求,设置该http的url,请求方法以及验证信息
  3. 设置响应http请求状态的函数
  4. 发送http请求
  5. 使用异步调用返回的数据
  6. 使用javascript和dom对象进行局部刷新
3.索引的实现原理

索引是一种快速查找的数据结构,储存在内存中。mysql中的索引是使用b+树来实现的,可以提高查询速度。
b+树中的元素也是有序的,同时由于一个节点可以存放多条数据,io读取效率高,同时相较于b树而言,非叶子节点稍微冗余,能够提升范围查询的效率。
7. 其他的提升查询速度的数据结构
8. hashmap–>精准查询,不能范围查询
9. 平衡二叉树,每个节点只能存放一条数据,需要多次读取
10. b树

4.springmvc的工作流程?各个组件的发挥的作用

dispachterServlet:前端控制器,负责调用其他组件
handlerMapping:处理器映射器
handlerAdptor:处理器管理器
handler:即controller,处理器,由工程师自己开发

  1. 用户通过浏览器发起 HttpRequest 请求到前端控制器 (DispatcherServlet)。
  2. DispatcherServlet 将用户请求发送给处理器映射器 (HandlerMapping)。
  3. 处理器映射器 (HandlerMapping)会根据请求,找到负责处理该请求的处理器,并将其封装为处理器执行链 返回 (HandlerExecutionChain) 给 DispatcherServlet
  4. DispatcherServlet 会根据 处理器执行链 中的处理器,找到能够执行该处理器的处理器适配器(HandlerAdaptor) --注,处理器适配器有多个
  5. 处理器适配器 (HandlerAdaptoer) 会调用对应的具体的 Controller
  6. Controller 将处理结果及要跳转的视图封装到一个对象 ModelAndView 中并将其返回给处理器适配器 (HandlerAdaptor)
  7. HandlerAdaptor 直接将 ModelAndView 交给 DispatcherServlet ,至此,业务处理完毕
  8. 业务处理完毕后,我们需要将处理结果展示给用户。于是DisptcherServlet 调用 ViewResolver,将 ModelAndView 中的视图名称封装为视图对象
  9. ViewResolver 将封装好的视图 (View) 对象返回给 DIspatcherServlet
  10. DispatcherServlet 调用视图对象,让其自己 (View) 进行渲染(将模型数据填充至视图中),形成响应对象 (HttpResponse)
  11. 前端控制器 (DispatcherServlet) 响应 (HttpResponse) 给浏览器,展示在页面上。
5.三次握手是什么?

第一次握手:

客户端给服务端发送一个 SYN 报文,并指定客户端的初始化序列号 ISN ,此时客户端处于 SYN_SEND 状态。
SYN 报文内容:首部的同步位 SYN = 1,初始序号 Sequence number = x。
SYN = 1 的报文段不能携带数据,但要消耗掉一个序号。

第二次握手:

服务端收到客户端的SYN报文后,会以自己的SYN报文作为应答,并且也是指定了自己的初始化序列号ISN。同时会把客户端的ISN+1作为ACK的值,表示自己已经收到了客户端的SYN,此时服务器处于SYN_REVD状态。
SYN报文内容:SYN = 1,ACK = 1, Sequence number = y, Acknowledgment number = x + 1。

第三次握手:

客户端受到 SYN 报文后,会发送一个 ACK 报文,把服务器的 ISN + 1 作为自己Acknowledgment number的值,表明自己已经收到了 SYN 报文,此时客户端处于ESTABLISHED状态,服务器收到 ACK 报文后,也处于 ESTABLISHED状态。此时双方已经建立链接。
ACK报文内容: ACK = 1, Acknowledgment number = y + 1, Sequence number = x + 1。
ACK报文段可以携带数据,不携带数据则不消耗序号。

6.水仙花数
//代码如下import java.util.*;

public class ShuiXianHua {

    public static void main(String[] args)

    {

        System.out.println("判断水仙花数");

        int i, j,k = 0;

        //i 是个位, j是十位,k是百位

       Scanner reader = new Scanner(System.in);

        System.out.println("只算3位数的代码\n");

        int m;

      m = reader.nextInt();

            k = m / 100;

            j = (m / 10) % 10;

            i = m % 10;

            if (Math.pow(k,3)+Math.pow(j,3)+Math.pow(i,3)== m)

            System.out.println(+m+"是水仙花数");

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值