蜜蜂职场文库 > 面试技巧 >

java软件测试面试题及答案

时间: 小龙 面试技巧

  Java软件测试的技术员在求职面试中,提前了解面试问题很重要,那么你知道Java测试面试题及答案了吗?下面小编已经为你们整理了java软件测试面试题及答案,欢迎阅读。

  java软件测试面试题及答案篇一

  1.简要描述如何结合struts、hibernate、spring开发Web应用?

  解答:Struts可以将jsp页面的表单关联起来,就是把JSP页面的表单数据封装成javaBean,这样的话,在action中你再也不需要使用传统的request.getParameter(“name”);还有struts有一个控制器,你在struts编程中的控制器(XxxAction)都是继承总的ActionServlet,它能集中处理请求,然后转到相关的页面。还有struts的表单验证组件,不用你写js验证了,只需要你配置一下文件就可以了。另外struts的令牌机制可以防表单重复提交。

  Spring 是一个轻量级容器,非侵入性.包含依赖注入,AOP等。它是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。

  Hibernate:它可以让我们以OO的方式操作数据库,这让我们看到了hibernate的强大之处,体验到操作数据的方便。但hibernate最耀眼之处是hibernate的缓存机制,而不是以OO的方式操作数据库。Hibernate的缓存机制不外乎是一级缓存session,二级缓存sessionFactory,和第三方缓存如ehcache。也就是hibernate的最强大的地方是它的缓存,理解了这个才能真正的理解hibernate,Hibernate的命名查询/命名参数查询,就是将hql语句放在一个单独的xml文件之中,它仍然让人们以面向对象的方式去操纵数据,而不用在以OO的方式写着代码的同时,然后再转变思维,用面向关系的方式去写那些sql语句。但hibernate不仅做了这些,它的native sql查询方式,完全满足sql语句的偏爱者,它像ibatis一样,将sql语句放在配置文件之中。

  2.说明反转控制(IOC)和面向方向编程(AOP)在spring中的应用

  解答:Spring 核心容器(Core)提供Spring框架的基本功能。核心容器的主要组件是BeanFactory,它是工厂模式的实现。BeanFactory使用控制反转(Ioc)模式将应用程序的配置和依赖性规范与实际的应用代码程序分开。Spring的声明式事务基于AOP实现,却并不需要程序开发者成为AOP专家,亦可轻易使用Spring的声明式事务管理。

  java软件测试面试题及答案篇二

  1.List、Map、Set三个接口存储元素时各有什么特点?

  解答:

  1)List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。

  2)Set是一种不包含重复的元素的Collection,即任意的两个元素e1和e2都有e1.equals(e2)=false,Set最多有一个null元素。

  3)Map接口 :请注意,Map没有继承Collection接口,Map提供key到value的映射

  2. 简述基于Struts框架Web应用的工作流程

  解答:在web应用启动时就会加载初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到各种配置对象中, 当ActionServlet接收到一个客户请求时,将执行如下流程.

  1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息;

  2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中;

  3)根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的validate()方法;

  4)如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActionErrors对象, 就表示表单验证成功;

  5)ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法;

  6)Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给ActionForward对象指向的JSP组件;

  7)ActionForward对象指向JSP组件生成动态网页,返回给客户;

  3. 在项目中用过Spring的哪些方面?及用过哪些Ajax框架?

  解答:在项目使用过Spring IOC ,AOP,DAO,ORM,还有上下文环境。

  在项目使用过Ext,Juery等Ajax框架.

  4、abstract class和interface有什么区别?

  解答:声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。接口(interface)是抽象类的变体。新型多继承性可通过实现这样的接口而获得。

  接口中的所有方法都是抽象的,所有成员变量都是public static final的。一个类可以实现多个接口,当类实现接口时,必须实现接口的所有方法。抽象类在Java语言中表示的是一种单继承的关系,对于interface 来说则不然,并不要求interface的实现者和interface定义在概念本质上是一致的,仅仅是实现了interface定义的契约而已。;抽象类中可以定义自己的成员变量,也可以包含非抽象的方法,而在接口中只能有静态的常量,所有方法必须是抽象的;实现抽象类时可以只实现其中的部分方法,而要是实现一个接口的话就必须实现这个接口中的所有抽象方法。

  java软件测试面试题及答案篇三

  1.MVC模式中M,V,C每个代表意义,并简述在Struts中MVC的表现方式。

  解答:

  MVC是Model-View-Controller 的缩写,Model代表的是应用的业务逻辑(通过JavaBean,EJB组件实现),View 是应用的表示层(由JSP页面产生)Controller是通过应用的处理过程控制,(一般是一个servert)通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现,这些组件可以进行交互和重用。

  在Struts框架中Controller功能由ActionServlet和ActionMapping对象构成,核心是一个Servlet类型的对象ActionServlet,它用来接收客户端的请求。ActionServlet包括一组基于配置的ActionMapping对象,每个ActionMapping对象实现了一个请求到一个具体的Model部分的Action处理器对象之间的映射。Model部分由Action和ActionForm对象构成。所有的Action处理器对象都是开发者从Struts的Action类派生的子类。Action处理器对象封装了具体的处理逻辑,调用业务逻辑模块,并且把响应提交到合适的View组件以产生响应。Struts提供的ActionForm组件对象可以通过定义属性描述客户端表单数据,开发者可以从它派生子类对象,并利用它和Struts提供的自定义标记库相结合,可以实现对客户端的表单数据的良好封装和支持,Action处理器对象可以直接对它进行读写,而不再需要和request、response对象进行数据交互。通过ActionForm组件对象实现了对View和Model之间交互的支持(View部分是通过JSP技术实现的)。Struts提供了自定义的标记库,通过这些自定义标记库可以非常容易地和系统的Model部分交互,通过使用这些自定义标记库创建的JSP表单,可以实现对Model部分中的ActionForm的映射,完成对用户数据的封装。

  2.java语言中public、private、protected三个关键字的用法,重写和重载的区别。

  解答:

  作用域 当前类 同包 子类 其它

  public √ √ √ √ protected √ √ √ × default √ √ × × private √ × × ×

  重写:发生在父子类之间,方法名相同,参数的类型、个数、顺序相同,返回值相同,访问权限不能更封闭,抛出异常不能宽泛;

  重载:发生在同一个类中,方法名相同,但是参数不同(类型不同或个数不同或参数的顺序不同),返回值可以不相同。

  3.JSP页面之间传递参数的方法有哪些?

  解答:

  1)request

  2)session

  3)application

  4)提交表单

  5)超链接

  4.forward 和redirect的区别

  解答:forward是容器中控制权的转向,是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。 redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,并且从浏览器的地址栏中可以看到跳转后的链接地址。前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接;在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。

  
看了“java软件测试面试题及答案”

51054