2019-10-09 面试题

接口和抽象类的区别:
7种区别
比较点 抽象类 接口
定义 用abstract修饰的类 用interfact修饰的类
组成

抽象方法,普通方法,构造方法,

成员变量,常量

抽象方法,静态常量
  必须有默认的方法实现 不存在方法实现
使用 子类继承(extends) 类实现(implements)
关系 抽象类可以实现接口 接口不能继承抽象类
对象 都是通过对象的多态性来实现  
  有构造器 无构造器
  可以有main() 没有main()
 局限性 继承一个类和实现多个方法 只能继承一个或多个接口
  速度快 速度慢,因为需要时间去找
 
HashMap、HashTable、ConCurrentHashMap(浅)区别:
HashMap:非线程安全,键和值都允许有null,由于现场不安全所以效率比较高;底层是数组和链表,1.8之后加入红黑树;
HashTable:线程安全,采用synchronizeation关键字,不接受null,效率低;
ConCurrentHashMap:线程安全,用于替代HashTable,采用了锁分段技术,不接受null,效率相对HashTable较高。
 
SpringMVC的执行流程:
  1. 用户发送请求至前端控制器DispatcherServlet;
  2. DispatcherServlet收到请求调用处理器映射器HandlerMapping;
  3. 处理器映射器根据请求url找到具体的处理器,生成处理器执行链HandlerExecutionChain(包括处理器对象和处理器拦截器)一并返回给DispatcherServlet;
  4. DispatcherServlet根据处理器Handler获取处理器适配器HandlerAdapter执行HandlerAdapter处理一系列的操作,如:参数封装,数据格式转换,数据验证等操作;
  5. 执行处理器Handler(Controller,也叫页面控制器);
  6. Handler执行完成返回ModelAndView;
  7. HandlerAdapte将Handler执行结果ModelAndView返回到DispatcherServlet;
  8. DispatcherServlet将ModelAndView传给ViewResolver视图解析器;
  9. ViewReslover解析后返回具体View;
  10. DispatcherServlet对View进行渲染视图(既将模型数据model填充至视图中);
  11. DispatcherServlet响应用户。
具体画图流程:

 

 

posted @ 2019-10-09 23:10  vince_z  阅读(64)  评论(0)    收藏  举报