今天万策组织了一次模拟面试,由黄工担任技术官,南希姐和范洁姐担任HR。总结一下,今天的模拟面试真的是一塌糊涂。

  首先,一开始是自我介绍,因为没有准备好稿子,直接导致我说完名字,来自哪里,什么学校之后不知道说什么,匆匆说了一些自己会的技术加上自己自学的python之后就不知道说什么了,毫无亮点可言。这下就知道了提前准备的好处,这还没有什么,至少自我介绍我还可以从容的说出来,自我介绍后面的技术面试才是糟糕透顶。首先问了关于集合的理解,自己只是回答了collection这个父类,然后将collection的子类一个个的说了出来,也说了它们之间各自的特性,知道后面我才知道除了collection还有map。在面试中我以为map是collection的子类,然后就大错特错了,从这个问题开始就一直崩了。第二个问题是简述一下spring,说实话,听到这个问题的时候我是懵的,不知道是不是紧张的原因,我居然记不起来关于spring中的AOP和IOC,然后知识说了一下spring这个知识点很宽,不知道应该说什么,真的是悲催啊。接下来就问了springMVC,我踏马居然又不知道说什么了,真想给自己一个巴掌。关于springMVC的作用和流程我是一个都没有回答上来,真想挖个地洞钻下去,很羞愧。还有就是黄工问了一个问题,就是这个项目中有什么亮点的地方,其实我个人是没有觉得哪里有亮点的,于是就说了登录。。。。作死又开始了。。。。说了注册模块之后自己不知道说什么了,知识简单的说了密码进行加密,进行前端验证。。。这些只是一个注册基本的功能,还是那句话,一点亮点都没有,真尼玛失败啊。总之,这次模拟面试真的是糟糕。

  在这里,再次对面试的问题进行自我理解的补充吧。

  Spring:是一个轻量级的开源框架,它的作用是为了简化javaWEB的开发,框架的主要优势是它的分层架构,具有良好的维护性和可测试性,能够很好的松耦合。spring中最主要的事IOC和AOP,其中IOC是反转控制,以前对象的创建都要使用new来创建,现在就不需要使用new了,而是容器会将这些工作给做了。AOP是面向切面编程,其中切面是项目中一些共同的代码,可以将它们提取出来,放在一个切面类中,便于升级和维护。主要作用是实现日志和事务的管理。

  SpringMVC:是一个优秀的MVC框架,也是一个轻量级的框架,目的是为了简化我们的开发,它将model,view和controller分开,能够很好的进行解耦合,各个层之前不会互相干扰,能够很好的进行维护工作。

springmvc的运行流程如下:

  1、  首先用户发送请求到DispatcherServlet中,前端控制器收到请求后自己不进行处理,而是委托给HandlerMapping,作为统一访问点,进行全局的流程控制;

  2、  DispatcherServlet——>HandlerMapping, HandlerMapping将会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器(页面控制器)对象、多个HandlerInterceptor拦截器)对象,通过这种策略模式,很容易添加新的映射策略;

  3、  DispatcherServlet——>HandlerAdapter,HandlerAdapter将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处理器;

  4、  HandlerAdapter——>处理器功能处理方法的调用,HandlerAdapter将会根据适配的结果调用真正的处理器的功能处理方法,完成功能处理;并返回一个ModelAndView对象(包含模型数据、逻辑视图名);

  5 、  ModelAndView的逻辑视图名——> ViewResolver, ViewResolver将把逻辑视图名解析为具体的View,通过这种策略模式,很容易更换其他视图技术;

  6、  View——>渲染,View会根据传进来的Model模型数据进行渲染,此处的Model实际是一个Map数据结构,因此很容易支持其他视图技术;

  7、返回控制权给DispatcherServlet,由DispatcherServlet返回响应给用户,到此一个流程结束。