面试题整理

面试题

socket http tcp/ip

  • socket则是对TCP/IP协议的封装和应用,Socket的出现只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象
  • HTTP是应用层协议,主要解决如何包装数据;
  • TCP/IP协议是传输层协议,主要解决数据如何在网络中传输;
  • TCP协议的职责:为了通信方便,将HTTP请求报文分割成报文段,按序号分为多个报文段,把每个报文段可靠地传给对方;从对方那里接收到的报文段,重组到达的报文段,按序号以原来的顺序充组请求报文;
  • IP协议的职责是搜索对方的地址,一边中转一边传;
  • 而Socket本身不算是协议,就像上面所说,它只是提供了一个针对TCP或者UDP编程的接口。

UDP TCP

  • TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,三次“对话”的目的是使数据包的发送和接收同步;
  • *

HTTP状态码

HTTP状态码表示客户端HTTP请求的返回结果,标记服务器端的处理是否正常,通知出现的错误的等。

  • 1xxx 接收的请求正在处理
  • 2xxx 请求正常处理完毕

    • 200 请求已正常处理
    • 204 请求处理成功,但没有可用资源返回
    • 206 表示客户端进行了范围请求,而服务器成功执行了这部分get请求
  • 3xxx 需要进行附加操作以完成请求

    • 301 永久性重定向,表示请求的资源已经被分配了新的uri
    • 302 临时性重定向
    • 303 应该使用get方法获取资源
  • 4xxx 服务器无法处理请求
    • 400: 请求报文中存在错误,服务器无法理解这个错误
    • 401: 发送的请求需要有通过HTTP认证的认证信息
    • 403: 请求被拒绝
    • 404: 服务器没有请求的资源
  • 5xxx 服务器处理请求出错

    • 500 服务器在执行请求时出错
    • 503 服务器超负载或正在停机维护

    Java实现多线程的三种方式:

    Java多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。

sql语句分组关键字,having是做什么的,如果我想要只三条数据应该用什么关键字?

分组数据涉及两个SELECT子句 分别是GROUP BY(组级过滤) 和 HAVING子句

GROUP BY 分组说明
HAVING 组级过滤
ORDER BY 输出排序顺序
LIMIT 要检索的行数

介绍一下springmvc。springmvc从前台传递数据到后台怎么接收。介绍一下springmvc工作流程。

SpringMVC是Spring的一个模块,是一个基于MVC设计模式的web框架,将web层进行职责解耦,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。

SpringMVC框架是围绕着DisPatcherServlet而工作的,从名字上看它是一个Servlet它可以拦截HTTP发来的请求,在Servlet初始化时,SpringMVC会根据配置信息,得到URI和处理器之前的映射关系,为了更加灵活和增强功能,SpringMVC还会给处理器加入拦截器,所以还可以在处理器执行前后加入自己的代码,这样就构成了一个处理器的执行链,然后根据配置信息初始化视图解析器等内容,当处理器返回的时候就可以通过视图解析器定位视图,然后将数据模型渲染到视图中,用来响应用户的请求了。
当一个请求到来时,DispatcherServlet首先通过事先解析好的HandlerMapping配置,找到对应的处理器(Handler),这样就准备开始运行处理器和拦截器组成的执行链,而运行处理器需要有一个对应的环境,这样它就有了一个处理器的适配器(HandlerAdapter)通过这个适配器能运行对应的处理器(controller业务代码)及拦截器(将请求参数转换成一个对象,数据类型转换,数据格式化,数据验证),这里的处理器包含了控制器的内容和其他增强的功能,在处理器返回模型和视图给前端控制器后,DispatcherServlet就会把对应的视图信息传递给视图解析器。这一步取决于是否使用逻辑视图,如果不是逻辑视图,就不会进行处理,而是直接通过视图渲数据模型。

spring的核心原理(Ioc,AOP都是什么)。

IoC(Inversion of Control,控制反转)是Spring的一个核心思想,实现了将类实例化的时机以及细节交给Spring来管理。当一个对象创建时,它所依赖的属性和对象由外部传递给它,而非自己去创建所依赖的对象(比如通过new操作),这种方式称为DI(Dependency Injection,依赖注入)。我们就像是工厂的客户,我们只需要向工厂请求一个Car实例,然后它就给我们按照Config创建了一个Car实例。
我们完全不用管这个Car实例是怎么一步一步被创建出来。
AOP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值