昨天去了恒峰面试,虽然知道可能凉凉了,但是整个过程我的感觉还是很不错的。
因为提前到了半个小时,工作人员还在午休,就在门口等了20分钟左右,进去之后,填写了基本资料,做了一套笔试题,面试整个过程没问什么技术,也有可能是对我没什么兴趣吧,但是恒峰的氛围我还是挺喜欢的。
说一下笔试和面试的问题吧:
描述springmvc的工作原理
用户发送请求至前端控制器DispatcherServlet。
DispatcherServlet收到请求调用HandlerMapping处理器映射器。
处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器一并返回给DispatcherServlet。
DispatcherServlet调用HandlerAdapter处理器适配器。
HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。
Controller执行完成返回ModelAndView。
HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。
DispatcherServlet将ModelAndView传给ViewReslover视图解析器。
ViewReslover解析后返回具体View。
DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。
DispatcherServlet响应用户。
怎样理解过滤器和拦截器
filter对请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链,他的完整流程是filter对用户请求进行预处理,接着将请求交给servlet并进行预处理,最后filter再对服务器响应进行后处理。
Interceptor是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其
执行,同时也提供了一种可以提取Action中可重用部分代码的方式。在AOP中,拦截器用于在某个方法或者字段被访问之前,进行拦截然后再之前或
者之后加入某些操作。java的拦截器主要是用在插件上。
拦截器与过滤器的区别:
过滤器Filter依赖于Servlet容器,基于回调函数,过滤范围大。
拦截器Interceptor依赖于框架容器,基于反射机制,只过滤请求。
ArrayList的原理,ArrayList和LinkedList的区别
ArrayList是List接口的可变数组非同步实现,并允许包括null在内的所有元素。
区别:
1.ArrayList是实现了基于动态数组的数据结构,LinkedList是基于链表结构。
2.对于随机访问的get和set方法,ArrayList要优于LinkedList,因为LinkedList要移动指针。
3.对于新增和删除操作add和remove,LinkedList比较占优势,因为ArrayList要移动数据。
线程与进程的区别
同一进程的线程共享本进程的地址空间,而进程之间则是独立的地址空间。
同一进程内的线程共享本进程的资源如内存、I/O、cpu等,但是进程之间的资源是独立的。
线程是处理器调度的基本单位,但是进程不是。
用Java编写一个100个随机数(1-1000)进行排序
还有一个数据库题(好像查询某个学校某个年纪相同姓名的同学)
面试
ssh和ssm的区别
Java和c的区别
学习的方法
对加班的看法
校园经历