1、关于Spring MVC的核心控制器DispatcherServlet的作用,以下说法错误的是( )?
A.它负责处理HTTP请求
B.加载配置文件
C.实现业务操作
D.初始化上下应用对象ApplicationContext
解析:
SpringMVC是Spring中的模块,它实现了MVC设计模式的web框架,首先用户发出请求,请求到达SpringMVC的前端控制器(DispatcherServlet),前端控制器根据用户的url请求处理器映射器查找匹配该url的handler,并返回一个执行链,前端控制器再请求处理器适配器调用相应的handler进行处理并返回给前端控制器一个modelAndView,前端控制器再请求视图解析器对返回的逻辑视图进行解析,最后前端控制器将返回的视图进行渲染并把数据装入到request域,返回给用户.
DispatcherServlet作为springMVC的前端控制器,负责接收用户的请求并根据用户的请求返回相应的视图给用户
实现业务操作时在servlice层,所以C答案错误。
2、“ArrayList 和 LinkedList 在新增、删除元素时,LinkedList 的效率要高于 ArrayList,而在遍历的时候,ArrayList 的效率要高于 LinkedList”,这句话对吗? 可以结合具体场景解释。
解析:LinkedList 的 for 循环性能是最差的,而 ArrayList 的 for 循环性能是最好的。
这是因为 LinkedList 基于链表实现的,在使用 for 循环的时候,每一次 for 循环都会去遍历半个 List,所以严重影响了遍历的效率;ArrayList 则是基于数组实现的,并且实现了 RandomAccess 接口标志,意味着 ArrayList 可以实现快速随机访问,所以 for 循环效率非常高。
LinkedList 的迭代循环遍历和 ArrayList 的迭代循环遍历性能相当,也不会太差,所以在遍历 LinkedList 时,我们要切忌使用 for 循环遍历。
3、Java应用在面对并发操作时, 为了提高处理速度, 线程是越多越好吗? 该如何设置(CPU密集型或IO密集型)?
解析:参考:https://blog.csdn.net/pangzhaowen/article/details/106141365