欢迎来到知了堂!
联系电话:知了堂-电话号码 028-62016472

微店校招Java面试题总结及答案-知了堂

微店校招Java面试题总结及答案

        其他系列文章:
        腾讯校招Java面试题总结及答案
        阿里巴巴校招Java面试题总结及答案

 

  1.servlet和filter的区别。filter你在哪些地方用到过。

  servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层。

  1) 客户端发送请求至服务器端;

  2) 服务器将请求信息发送至 Servlet;

  3) Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;

  4) 服务器将响应返回给客户端。

  在 Web 应用程序中,一个 Servlet 在一个时刻可能被多个用户同时访问。这时 Web 容器将为每个用户创建一个线程来执行 Servlet。

  filter是一个可以复用的代码片段,可以用来转换HTTP请求、响应和头信息。Filter不像Servlet,它不能产生一个请求或者响应,它只是修改对某一资源的请求,或者修改从某一的响应。只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应(Request、Response)统一设置编码,简化操作;同时还可进行逻辑判断,如用户是否已经登陆、有没有权限访问该页面等等工作。

  Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理。

  创建一个Filter只需两个步骤:

  建Filter处理类;

  web.xml文件中配置Filter。

  一定要实现javax.servlet包的Filter接口的三个方法init()、doFilter()、destroy().

  listener:监听器,从字面上可以看出listener主要用来监听只用。通过listener可以监听web服务器中某一个执行动作,并根据其要求作出相应的响应。

  interceptor:是在面向切面编程的,就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法,是基于JAVA的反射机制。比如动态代理就是拦截器的简单实现.
微店校招Java面试题总结及答案

 

  2.堆与普通二叉树有什么区别。

  堆是结点之间满足一定次序关系的完全二叉树(大多数情况下使用的是完全二叉树,但不一定必须是完全二叉树)。

  具有n个结点的堆,其深度即为堆所对应的完全二叉树的深度log n 。

  以小根堆为例,堆的特点是双亲结点的关键字必然小于等于孩子结点的关键字,而两个孩子结点的关键字没有次序规定。

  堆存在的原因:

  我们需要能得到一个集合的最小值,并且,在它被任意划分成为若干个子集的时候,这些子集的最小值我们也是知道的,这些子集不断的被划分,我们依然知道再次被划分出来的这些子集的最小值。

  堆不止二叉堆,还有更复杂的二项堆,斐波那契堆,配对堆等等。

  总之,堆是一种特殊的树。

  3.linux如何查找文件

  cat、vi、

  find :find <指定目录> <指定条件> <指定动作>

  使用locate搜索linux系统中的文件,它比find命令快。因为它查询的是数据库(/var/lib/locatedb),数据库包含本地所有的 文件信息。使用locate命令在根目录下搜索interfaces文件的命令为”locate interfaces“

  使用”whereis“命令可以搜索linux系统中的所有可执行文件即二进制文件。使用whereis命令搜索grep二进制文件的命令为”whereis grep“。
 

          版权声明:本文来源于网络,由知了堂搜集整理,仅供大家学习Java时使用