java測試工程師面試題
對于Java測試工程師而言,想要取得面試成功,那么你做好面試準(zhǔn)備,了解面試題了嗎?下面小編已經(jīng)為你們整理了java測試工程師面試題,一起來看看吧。
java測試工程師面試題一
1. 類有哪三個基本特性?各特性的優(yōu)點(diǎn)?
解答:類具有封裝性、繼承性和多態(tài)性。
封裝性:類的封裝性為類的成員提供公有、缺省、保護(hù)和私有等多級訪問權(quán)限,目的是隱藏類中的私有變量和類中方法的實(shí)現(xiàn)細(xì)節(jié)。
繼承性:類的繼承性提供從已存在的類創(chuàng)建新類的機(jī)制,繼承(inheritance)使一個新類自動擁有被繼承類(父類)的全部可繼承的成員。
多態(tài)性:類的多態(tài)性提供類中方法執(zhí)行的多樣性,多態(tài)性有兩種表現(xiàn)形式:重載和覆蓋。
2.談?wù)剬ML的理解?說明Web應(yīng)用中Web.xml文件的作用?
解答:XML(Extensible Markup Language)即可擴(kuò)展標(biāo)記語言,它與HTML一樣,都是SGML(Standard Generalized Markup Language,標(biāo)準(zhǔn)通用標(biāo)記語言)。Xml是Internet環(huán)境中跨平臺的,依賴于內(nèi)容的技術(shù),是當(dāng)前處理結(jié)構(gòu)化文檔信息的有力工具。擴(kuò)展標(biāo)記語言XML是一種簡單的數(shù)據(jù)存儲語言,使用一系列簡單的標(biāo)記描述數(shù)據(jù),而這些標(biāo)記可以用方便的方式建立,雖然XML占用的空間比二進(jìn)制數(shù)據(jù)要占用更多的空間,但XML極其簡單易于掌握和使用。
web.xml的作用是配置歡迎頁,servlet,filter,listener等的。
3.jsp有哪些內(nèi)置對象?作用分別是什么?(至少三個)
解答:
1)request表示HttpServletRequest對象。它包含了有關(guān)瀏覽器請求的信息,并且提供了幾個用于獲取cookie, header和session數(shù)據(jù)的有用的方法。
2)response表示HttpServletResponse對象,并提供了幾個用于設(shè)置送回 瀏覽器的響應(yīng)的方法(如cookies,頭信息等)。
3)out對象是javax.jsp.JspWriter的一個實(shí)例,并提供了幾個方法使你能用于向?yàn)g覽器回送輸出結(jié)果。
4)pageContext表示一個javax.servlet.jsp.PageContext對象。它是用于方便存取各種范圍的名字空間、servlet相關(guān)的對象的API,并且包裝了通用的servlet相關(guān)功能的方法。
5)session表示一個請求的javax.servlet.http.HttpSession對象。Session可以存貯用戶的狀態(tài)信息。
6)application 表示一個javax.servle.ServletContext對象。這有助于查找有關(guān)servlet引擎和servlet環(huán)境的信息。
7)config表示一個javax.servlet.ServletConfig對象。該對象用于存取servlet實(shí)例的初始化參數(shù)。
8)page表示從該頁面產(chǎn)生的一個servlet實(shí)例。
9)exception 針對錯誤網(wǎng)頁,未捕捉的例外
java測試工程師面試題二
1.事務(wù)是什么?有哪些屬性,并簡要說明這些屬性的含義。
解答:事務(wù)(Transaction)是訪問并可能更新數(shù)據(jù)庫中各種數(shù)據(jù)項(xiàng)的一個程序執(zhí)行單元(unit)。
事務(wù)通常由高級數(shù)據(jù)庫操縱語言或編程語言(如SQL,C++或Java)書寫的用戶程序的執(zhí)行所引起,并用形如begin transaction和end transaction語句(或函數(shù)調(diào)用)來界定。事務(wù)由事務(wù)開始(begin transaction)和事務(wù)結(jié)束(end transaction)之間執(zhí)行的全體操作組成。
事務(wù)應(yīng)該具有4個屬性:原子性、一致性、隔離性、持續(xù)性。這四個屬性通常稱為ACID特性。
原子性(atomicity)。一個事務(wù)是一個不可分割的工作單位,事務(wù)中包括的諸操作要么都做,要么都不做。
一致性(consistency)。事務(wù)必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。一致性與原子性是密切相關(guān)的。
隔離性(isolation)。一個事務(wù)的執(zhí)行不能被其他事務(wù)干擾。即一個事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對并發(fā)的其他事務(wù)是隔離的,并發(fā)執(zhí)行的各個事務(wù)之間不能互相干擾。
持久性(durability)。持續(xù)性也稱永久性(permanence),指一個事務(wù)一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該是永久性的。接下來的其他操作或故障不應(yīng)該對其有任何影響。
2、Collection 和 Collections的區(qū)別?
解答:Collection是java.util下的接口,它是各種集合的父接口,繼承于它的接口主要有Set 和List;Collections是個java.util下的類,是針對集合的幫助類,提供一系列靜態(tài)方法實(shí)現(xiàn)對各種集合的搜索、排序、線程安全化等操作。
3、HashMap與TreeMap的區(qū)別?
解答:HashMap通過hashcode對其內(nèi)容進(jìn)行快速查找,而TreeMap中所有的元素都保持著某種固定的順序,如果你需要得到一個有序的結(jié)果你就應(yīng)該使用TreeMap(HashMap中元素的排列順序是不固定的)。
4、ArrayList和Vector的區(qū)別?
解答:同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程不安全的,不是同步的;數(shù)據(jù)增長:當(dāng)需要增長時,Vector默認(rèn)增長為原來一培,而ArrayList卻是原來的一半。
5、HashMap和Hashtable的區(qū)別?
解答:HashMap是Hashtable的輕量級實(shí)現(xiàn)(非線程安全的實(shí)現(xiàn)),他們都實(shí)現(xiàn)了Map接口,主要區(qū)別在于HashMap允許空(null)鍵值(key),由于非線程安全,效率上高于Hashtable。HashMap允許將null作為一個entry的key或者value,而Hashtable不允許。HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因?yàn)閏ontains方法容易讓人引起誤解。Hashtable繼承自Dictionary類,而HashMap是Java1.2引進(jìn)的Map interface的一個實(shí)現(xiàn)。最大的不同是,Hastable的方法是synchronize的,而HashMap不是,在多個線程訪問Hashtable時,不需要自己為它的方法實(shí)現(xiàn)同步,而HashMap 就必須為之提供同步。
java測試工程師面試題三
1.請說出ArrayList,Vector, LinkedList的存儲性能和特性
解答:ArrayList和Vector都是使用數(shù)組方式存儲數(shù)據(jù),此數(shù)組元素?cái)?shù)大于實(shí)際存儲的數(shù)據(jù)以便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數(shù)組元素移動等內(nèi)存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢,Vector由于使用了synchronized方法(線程安全),通常性能上較ArrayList差,而LinkedList使用雙向鏈表實(shí)現(xiàn)存儲,按序號索引數(shù)據(jù)需要進(jìn)行前向或后向遍歷,但是插入數(shù)據(jù)時只需要記錄本項(xiàng)的前后項(xiàng)即可,所以插入速度較快。
2. 描述J2EE框架的多層結(jié)構(gòu),并簡要說明各層的作用。
解答:
1) Presentation layer(表示層)
a. 表示邏輯(生成界面代碼)
b. 接收請求
c. 處理業(yè)務(wù)層拋出的異常
d. 負(fù)責(zé)規(guī)則驗(yàn)證(數(shù)據(jù)格式,數(shù)據(jù)非空等)
e. 流程控制
2) Service layer(服務(wù)層/業(yè)務(wù)層)
a.封裝業(yè)務(wù)邏輯處理,并且對外暴露接口
b.負(fù)責(zé)事務(wù),安全等服務(wù)
3) Persistence layer(持久層)
a 封裝數(shù)據(jù)訪問的邏輯,暴露接口
b.提供方便的數(shù)據(jù)訪問的方案(查詢語言,API,映射機(jī)制等)
4)Domain layer(域?qū)?
a. 業(yè)務(wù)對象以及業(yè)務(wù)關(guān)系的表示
b. 處理簡單的業(yè)務(wù)邏輯
c. 域?qū)拥膶ο罂梢源┰奖硎緦?,業(yè)務(wù)層,持久層
軟件分層結(jié)構(gòu)使得代碼維護(hù)非常方便,設(shè)計(jì)明確,各層獨(dú)立,專注自己擅長的領(lǐng)域。
3.請談?wù)剬OA的認(rèn)識。
解答:面向服務(wù)的體系結(jié)構(gòu)(Service-Oriented Architecture,SOA)是一個組件模型,它將應(yīng)用程序的不同功能單元(稱為服務(wù))通過這些服務(wù)之間定義良好的接口和契約聯(lián)系起來。接口是采用中立的方式進(jìn)行定義的,它應(yīng)該獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺、操作系統(tǒng)和編程語言。這使得構(gòu)建在各種這樣的系統(tǒng)中的服務(wù)可以一種統(tǒng)一和通用的方式進(jìn)行交互。
看了“java測試工程師面試題”