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軟件測試面試題及答案”